所以我想要一个TableLayout
放在ScrollView中。但我有一个问题:
TableLayout最初为空,我通过点击按钮以编程方式向其添加TableRows
。如果我将TableLayout
正常放入ScrollView
(例如:当我滚动,它完美地工作)时,这可以正常工作。
但我想这样做,以便TableLayout位于ScrollView
的BOTTOM。因此,每次添加TableRow
时,最后一个单元格将始终与父ScrollView的底部对齐。 (有点像移动聊天的工作方式 - 当你按下发送时,你的信息被放在底部而所有其他信息都被推上了。)
如果我使用android:layout_gravity="bottom"
来尝试实现此目的,我将无法向上滚动,因此我无法看到任何向上推出的行屏幕。但是,我可以出于某种原因向下滚动(进入空虚),这是不可能的,因为最后TableRow
应该在底部。
这是相关的XML代码(LinearLayout可能是冗余/不需要):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:background="@android:color/black"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_gravity="center"
android:layout_marginTop="0dp"
android:layout_weight="0.1"
android:orientation="horizontal" >
<!-- 2 Buttons here -->
</LinearLayout>
<TextView
<!-- attributes of textView> -->/>
<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" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
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>
<Button
<!-- Button attributes --> />
</LinearLayout>
分频器: 背景: 3
答案 0 :(得分:0)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/black" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_gravity="center"
android:layout_marginTop="0dp"
android:orientation="horizontal" >
<!-- 2 Buttons here -->
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<TextView
android:id="@+id/textview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="uiop turn" />
<ScrollView
android:id="@+id/tableScrollView"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_above="@+id/botton_button"
android:layout_below="@+id/textview"
android:orientation="vertical"
android:scrollbars="none" >
<RelativeLayout
android:id="@+id/relativelayout"
android:layout_width="fill_parent"
android:layout_gravity="bottom"
android:layout_height="fill_parent" >
<TableLayout
android:id="@+id/outputTable"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:showDividers="middle" >
</TableLayout>
</RelativeLayout>
</ScrollView>
<Button
android:id="@+id/botton_button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="roll" />
</RelativeLayout>
答案 1 :(得分:0)
我尝试了这个并且它有效。 Button
的代码只要我将新的TableRow
添加到TableLayout tblLayout
,就会滚动到底部。
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
TableRow tbr = new TableRow(getApplicationContext());
TextView tv= new TextView(getBaseContext());
tv.setTextSize(80f);
tv.setText("Item" + a++);
tbr.addView(tv);
tblLayout.addView(tbr);
mScroll.post(new Runnable() {
public void run() {
mScroll.scrollTo(0, mScroll.getBottom());
}
});
}
});
它应该适用于放置Button的任何地方。无论是内部还是外部。变量a是在顶部声明的int
。如果你没有得到任何东西并且编码愉快,请告诉我!