2010-07-03 3 views
1

У меня есть следующий макет для диалога:прокрутка Android ListView в TableView Row

<?xml version="1.0" encoding="utf-8"?> 
<TableLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/categorylist" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:stretchColumns="0"> 
    <TableRow> 
     <ListView 
      android:id="@+id/categorylistview" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:isScrollContainer="true" 
      android:scrollbars="vertical" 
      android:scrollbarStyle="insideOverlay" 
     /> 
    </TableRow> 
    <TableRow> 
     <TextView 
      android:text="New Category" 
      ... 
     </TextView> 
    </TableRow> 
    <TableRow> 
     <EditText 
      android:id="@+id/NewCategoryEditText" 
      ... 
     </EditText> 
    </TableRow> 
    <TableRow> 
     <Button 
      android:id="@+id/newcategorybutton" 
      ... 
     /> 
    </TableRow> 
</TableLayout>  

Я хотел бы ListView расти до тех пор, пока используется свободное пространство, а затем прокручивать, как это coninues расти. Это прекрасно работает, когда строка таблицы с Listview является последним в TableLayout:

alt text http://heeroz.com/scroll2.png

Однако, имея на кнопку Добавить в верхней части списка не очень интуитивным. Когда я перемещаю «фиксированные» строки таблицы в нижнюю часть, ListView вытолкнет их с экрана, как только он вырастет, до точки, где он должен прокручиваться. ListView только потом начинают прокручивать, когда нет ничего другого не остается, что может быть оттолкнулся экран:

alt text http://heeroz.com/scroll1.png

Как я могу изменить макет так, что строки таблицы с помощью кнопки и вид EditText остаются видно?

ответ

4

Есть ли конкретная причина, по которой вы используете TableLayout вместо LinearLayout с android:orientation="vertical"? Если вы используете LinearLayout, вы можете указать android:layout_weight="1" на ListView, и вы должны получить желаемые результаты.

+0

Я не помню особую причину, и я попробую ваше предложение. Благодарю. – cdonner

+0

Работает лучше, и до сих пор я не обнаружил никаких недостатков. Благодаря! – cdonner

+0

При работе с layout_weight не забудьте использовать layout_width = "0dp" – Peter

Смежные вопросы