在TableRow中设置按钮的大小

时间:2014-03-01 17:43:05

标签: java android xml

我有一个(可能)平庸而烦人的问题。我有TableRow。在行中有9个按钮,但只有5个可见。如果我缩短代码,它将如下所示:

XML:

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="fill_vertical">

<TableRow
android:id="@+id/row"/>

</TableLayout>

JAVA:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pokusy);
    TableRow row = (TableRow)findViewById(R.id.row);
    for(int i = 0; i < 9; i++){
        Button b = new Button(this);
        row.addView(b);
    }
}}

我已经尝试过在互联网上找到的任何内容(例如。setWidthsetLayoutParamsandroid:layout_width="..."),但仍然只有9个按钮中的5个可见屏幕。 拜托,有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

稍微修改了一下XML以使其正常工作。 shrinkColumns属性使列适合所需的TableLayout参数。 '*'将其应用于所有列。

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="fill_vertical"
    android:shrinkColumns="*" > <!-- this makes the difference -->

    <TableRow
        android:id="@+id/row"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</TableLayout>