У меня есть следующий макет для диалога:прокрутка 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 остаются видно?
Я не помню особую причину, и я попробую ваше предложение. Благодарю. – cdonner
Работает лучше, и до сих пор я не обнаружил никаких недостатков. Благодаря! – cdonner
При работе с layout_weight не забудьте использовать layout_width = "0dp" – Peter