所以我想要一个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>
答案 0 :(得分:4)
看起来你应该使用ListView或其中的一些变体;它为与滚动内容相关的各种优化提供支持。看一下可用于自定义ListView实现的一些教程和开发人员文档。
编辑有关使用ListView执行所需滚动操作的详细信息,请查看问题Listview Scroll to the end of the list after updating the list。