Вопрос о табличном представлении Android:получить правый столбец фиксированной ширины?

StackOverflow https://stackoverflow.com/questions/2351557

Вопрос

(Отредактированный:Я продвинулся на один шаг дальше, чем раньше)

Я пытался создать простое табличное представление с двумя столбцами, в котором у меня есть 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 -- Я бы начал с того, что заставил бы что-то работать так, как вы хотите, используя обычные виджеты.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top