У меня есть следующий макет для диалога:
<?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 увеличивался до тех пор, пока не будет использовано доступное пространство, а затем прокручивайте по мере увеличения. Это прекрасно работает, когда строка таблицы с Listview является последней в TableLayout:
альтернативный текст http://heeroz.com/scroll2.png
Однако наличие кнопки «Добавить» вверху списка не очень интуитивно понятно. Когда я перемещаю «фиксированные» строки таблицы вниз, ListView выталкивает их с экрана, как только он увеличивается до точки, где он должен прокручиваться. ListView начнет прокручиваться только тогда, когда не останется ничего, что можно было бы оттолкнуть от экрана:
альтернативный текст http://heeroz.com/scroll1.png
Как изменить макет, чтобы строки таблицы с кнопкой и представлением EditText оставались видимыми?