На странице моего приложения есть страница макета таблицы, и одна строка, похоже, не работает. Моя цель - равномерно разделить страницу между левой ячейкой и правой ячейкой. Левая ячейка содержит строку, правую ячейку - изображение и строку. Я попытался сделать это, используя weightSum. Левая ячейка получила вес 4/8, а правая ячейка была помещена в линейную компоновку, в которой изображение получило вес 1/8, а строка получила вес 3/8. Однако в макете левая ячейка занимает большую часть строки, около 75%, и я не уверен, почему.Размер макета Android не суммируется должным образом
Мои ряды ниже этой попытки почти то же самое, но не имеют такой же проблемы.
Мой XML (сократить для релевантности):
<TableRow
android:layout_width="match_parent">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Class"
android:id="@+id/classTextView"
android:layout_marginTop="14dp"
android:layout_weight="1"
android:gravity="center"/>
<LinearLayout>
<View
android:layout_width="4dp"
android:gravity="left"
android:layout_height="match_parent"
android:background="#663300"/>
<ImageView
tools:ignore="ContentDescription"
android:id="@+id/classicon"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/barbarianicon50"
android:layout_gravity="end"
android:layout_weight="1"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Class Value"
android:id="@+id/classValueView"
android:layout_marginTop="14dp"
android:layout_weight="3"
android:gravity="left"/>
</LinearLayout>
</TableRow>
<View
android:layout_width="match_parent"
android:layout_height="4dp"
android:background="#663300"/>
<TableRow android:layout_width="match_parent">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Strength"
android:id="@+id/strengthTextView"
android:layout_marginTop="20dp"
android:layout_weight="4"
android:gravity="center" />
<LinearLayout>
<View
android:layout_width="4dp"
android:gravity="left"
android:layout_weight="0"
android:layout_height="match_parent"
android:background="#663300"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Strength Value"
android:id="@+id/strengthValView"
android:layout_marginTop="20dp"
android:layout_weight="4"
android:gravity="center" />
</LinearLayout>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Intelligence"
android:id="@+id/intelligenceTextView"
android:layout_marginTop="20dp"
android:layout_weight="4"
android:gravity="center" />
<LinearLayout>
<View
android:layout_width="4dp"
android:gravity="left"
android:layout_weight="0"
android:layout_height="match_parent"
android:background="#663300"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Intelligence Value"
android:id="@+id/intelligenceValView"
android:layout_marginTop="20dp"
android:layout_weight="4"
android:gravity="center" />
</LinearLayout>
</TableRow>
Первая строка таблицы является проблематичным один - она должна быть равномерно распределена между левой и правой клеток, но в основном в направлении вправо.
Вторая строка таблицы является примером ее правильной работы - эта строка имеет 2 пары ячеек, но каждая из ячеек и пары ячеек правильно распределяют ширину между собой.
Я не могу понять, почему первое не работает. Я ценю любую помощь!
'Я попытался сделать это с помощью weightSum' Я не вижу weightSum в предоставленном xml? – Xiao
WeightSum превысил этот код. Мое плохое, я должен был опубликовать это также. Я определил его как android: weightSum = "8" EDIT: для ясности это использует weightSum. – WarSame