我有一个对话框的以下布局:
<?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中的最后一行时,这可以正常工作:
alt text http://heeroz.com/scroll2.png
但是,在列表顶部添加“添加”按钮不是很直观。当我将“固定”表格行移动到底部时,ListView会在它增长到应该滚动的点时将它们推离屏幕。只有当剩下的东西无法从屏幕上移开时,ListView才会开始滚动:
alt text http://heeroz.com/scroll1.png
如何更改布局,以便按钮和EditText视图的表格行仍然可见?
答案 0 :(得分:4)
您使用TableLayout
而不是使用LinearLayout
的{{1}}是否有特殊原因?如果您使用android:orientation="vertical"
,则可以在LinearLayout
上指定android:layout_weight="1"
,然后您就可以获得所需的结果。