让GridLayout设置自己的列数

时间:2013-08-09 17:53:19

标签: android button scrollview grid-layout

我正在向GridLayout添加一定数量的按钮,我不想设置特定的列数量(因为当我这样做并且手机的方向发生变化时,事情看起来不太好)。我已经尝试取出列规范,但这只会导致它有1个非结束行。

我希望按钮的大小相同,并让它们填充可用的空白区域。我对拉伸按钮的宽度不感兴趣。

爪哇

GridLayout gridLayout = (GridLayout) findViewById(R.id.layout_grid);
for(int i = 0; i < numButtons; i++)
{
    Button button = new Button(this);
    button.setText(i+"");
    gridLayout.addView(button);
}

XML (我正在将GridLayout包裹在ScrollView中,因为我预计按钮会在屏幕上垂直运行):

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/scrollview_grid"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fillViewport="true"
    tools:context=".Grid" >

    <GridLayout
        android:id="@+id/layout_grid"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin" >
    </GridLayout>

</ScrollView>

1 个答案:

答案 0 :(得分:1)

我建议您使用简单的GridView,并将numColumns属性设置为auto_fit。它还会为您进行滚动操作,以便您删除ScrollView

http://developer.android.com/reference/android/widget/GridView.html#attr_android:numColumns