gpt4 book ai didi

android设置TableLayout的高度

转载 作者:行者123 更新时间:2023-11-29 00:47:22 25 4
gpt4 key购买 nike

我有一个 TableLayout,只有一行(即标题行)在 XML 中。我动态添加的其他所有行。XML 部分:

    <TableLayout android:id="@+id/list_table" 
android:layout_width="match_parent" android:layout_height="wrap_content"
android:stretchColumns="1" android:background="#808000" **android:scrollbars="vertical">**
<TableRow android:layout_margin="1dp" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:id="@+id/list_head_Row">
<TextView android:layout_width="wrap_content"
android:text="Col1" android:layout_height="wrap_content"></TextView>
<TextView android:gravity="center" android:layout_width="wrap_content" android:text="Col2" android:layout_height="wrap_content"></TextView>
<TextView android:layout_width="wrap_content" android:text="Col3" android:layout_height="wrap_content"></TextView>
</TableRow>
</TableLayout>

在 Activity 类中,我添加了 TableRows :

TableRow tr = new TableRow(this);
tr.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
// Add 3 TextViews
// Add Row to table
t1.addView(tr, new TableLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));

有了这么多,所有的行都被添加到表格中并填满了屏幕。我想设置的是,只查看 4-5 行,其他的可以滚动。为此我添加了:

    int tableHgt = t1.getChildAt(0).getHeight() + (rowHgt *40);
t1.setLayoutParams(new TableLayout.LayoutParams(LayoutParams.FILL_PARENT, tableHgt));

除了在 xml 中添加的标题行之外,我根本看不到任何行。我怎样才能使它的高度只显示 5 行,而其他所有行都可以滚动?在TableLayout中也添加了android:scrollbars="vertical"

我哪里错了?

非常感谢任何帮助。

谢谢

最佳答案

你为什么不使用 ListView ?

但是好吧……回到你的问题将 TableLayout 放在 ScrollView 中,并在 ScrollView 中设置高度

编辑:代码

Activity .java

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.scrolltest);

TableLayout t1 = (TableLayout) findViewById(R.id.list_table);

for (int i = 0; i < 10; i++) {
TableRow tr = new TableRow(this);
tr.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT,
TableRow.LayoutParams.WRAP_CONTENT));
t1.addView(tr, new TableLayout.LayoutParams(
TableLayout.LayoutParams.FILL_PARENT, TableLayout.LayoutParams.WRAP_CONTENT));
TextView tv = new TextView(this);
tr.addView(tv, new TableRow.LayoutParams(
TableRow.LayoutParams.FILL_PARENT, TableRow.LayoutParams.WRAP_CONTENT));
tv.setText(Integer.toString(i));
tv = new TextView(this);
tr.addView(tv, new TableRow.LayoutParams(
TableRow.LayoutParams.FILL_PARENT, TableRow.LayoutParams.WRAP_CONTENT));
tv.setText("Row number");
tv = new TextView(this);
tr.addView(tv, new TableRow.LayoutParams(
TableRow.LayoutParams.FILL_PARENT, TableRow.LayoutParams.WRAP_CONTENT));
tv.setText(Integer.toString(i));
}
}

滚动测试.xml

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="100dp"
android:id="@+id/list_scroll">
<TableLayout android:id="@+id/list_table"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:stretchColumns="1">
<TableRow android:layout_margin="1dp" android:layout_height="wrap_content"
android:layout_width="fill_parent" android:id="@+id/list_head_Row"
android:background="#808000">
<TextView android:layout_width="wrap_content" android:text="Col1"
android:layout_height="wrap_content" />
<TextView android:gravity="center" android:layout_width="wrap_content"
android:text="Col2" android:layout_height="wrap_content" />
<TextView android:layout_width="wrap_content" android:text="Col3"
android:layout_height="wrap_content" />
</TableRow>
</TableLayout>
</ScrollView>

关于android设置TableLayout的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5661890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com