滚动的Android的ListView中的TableView行
问题描述:
我有一个对话框布局如下:滚动的Android的ListView中的TableView行
<?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视图中的表行仍在可见?
答
是否有一个特别的原因,您使用的是TableLayout
而不是LinearLayout
和android:orientation="vertical"
?如果您使用LinearLayout
,则可以在ListView
上指定android:layout_weight="1"
,并且应该得到所需的结果。
我不记得一个特别的原因,我会尝试你的建议。谢谢。 – cdonner 2010-07-03 04:08:22
效果更好,到目前为止我还没有发现任何缺点。谢谢! – cdonner 2010-07-04 00:39:39
使用layout_weight时,请记住使用layout_width =“0dp” – Peter 2014-02-06 13:58:51