2010-07-03 93 views
1

我有一个对话框布局如下:滚动的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视图中的表行仍在可见?

回答

4

是否有一个特别的原因,您使用的是TableLayout而不是LinearLayoutandroid:orientation="vertical"?如果您使用LinearLayout,则可以在ListView上指定android:layout_weight="1",并且应该得到所需的结果。

+0

我不记得一个特别的原因,我会尝试你的建议。谢谢。 – cdonner 2010-07-03 04:08:22

+0

效果更好,到目前为止我还没有发现任何缺点。谢谢! – cdonner 2010-07-04 00:39:39

+0

使用layout_weight时,请记住使用layout_width =“0dp” – Peter 2014-02-06 13:58:51