将TableLayout放在ScrollView中?

时间:2014-01-14 21:05:45

标签: java android scrollview tablelayout

所以我想要一个TableLayout放在ScrollView中。但我有一个问题:

TableLayout最初为空,我通过点击按钮以编程方式向其添加TableRows。如果我将TableLayout正常放入ScrollView,这种方式可以正常工作。

但我想把TableLayout放在ScrollView的底部。因此,每次添加TableRow时,最后一个单元格将始终与父ScrollView的底部对齐。 (有点像聊天应用程序的工作方式 - 当您按下发送时,您的消息会添加到底部,而所有其他消息都会被推送)。

如果我使用android:layout_gravity="bottom"来尝试实现此目的,我将无法看到任何向上推出屏幕视图的行(我无法向上滚动) 。但是,由于某种原因,我可以向下滚动到空虚,这是不可能的,因为上一个TableRow应该在底部。

基本上问题是我可以向下滚动没有TableRows的地方,但我不能向上滚动。

这是相关的XML代码:

<ScrollView
    android:id="@+id/tableScrollView"
    android:layout_width="match_parent"
    android:layout_weight="0.7"
    android:layout_height="0dip"
    android:scrollbars="none"
    android:orientation="vertical"
    android:background="@drawable/stripes_background" >

    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_gravity="bottom">    

        <TableLayout
            android:id="@+id/outputTable"
            android:layout_alignParentBottom="true"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:divider="@drawable/table_divider" 
            android:showDividers="middle">    
    </TableLayout>
    </RelativeLayout>

</ScrollView>

1 个答案:

答案 0 :(得分:4)

看起来你应该使用ListView或其中的一些变体;它为与滚动内容相关的各种优化提供支持。看一下可用于自定义ListView实现的一些教程和开发人员文档。

编辑有关使用ListView执行所需滚动操作的详细信息,请查看问题Listview Scroll to the end of the list after updating the list