Вопрос о табличном представлении Android:получить правый столбец фиксированной ширины?
-
23-09-2019 - |
Вопрос
(Отредактированный:Я продвинулся на один шаг дальше, чем раньше)
Я пытался создать простое табличное представление с двумя столбцами, в котором у меня есть LinearLayout в моем левом столбце, в который я динамически добавляю элементы, заполняющие горизонтальное пространство, за исключением фиксированного правого столбца размером 100 пикселей.
Вот что у меня есть на данный момент, что работает для меня, если LinearLayout содержит более одного элемента.Если он содержит только один элемент, правый столбец выдвигается вправо от экрана
<ScrollView android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@layout/main">
<TableLayout android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TableRow>
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="0.4"
android:orientation="vertical"></LinearLayout>
<com.epaga.ArcDrawableView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="right" android:layout_weight="0.1" >
</com.epaga.ArcDrawableView>
</TableRow>
</TableLayout>
</ScrollView>
Вещи, которые я пробовал:
- изменение отображаемого вида (который должен быть фиксированным столбцом) на
android:layout_width="150px"
- изменение
stretchcolumns
установка в 0. - изменение левых столбцов'
layout_width
либо в fill_parent (удаляет правый столбец с экрана), либо в wrap_content (сворачивает левый столбец).
Есть какие-нибудь мысли?
Решение
Есть какие-нибудь мысли?
Во-первых, почему вы используете TableLayout
?Почему бы просто не использовать вложенный LinearLayouts
?Вы уже решили, что вас не волнует основное использование для TableLayout
-- автоматическое вычисление размеров столбцов - потому что вы пытаетесь исправить размеры столбцов самостоятельно.
Во-вторых, можете ли вы заставить его работать, используя обычный виджет для правого столбца, а не ваш пользовательский View
класс?Ваша проблема может быть связана с вашим обычаем View
-- Я бы начал с того, что заставил бы что-то работать так, как вы хотите, используя обычные виджеты.