按钮上的长文本会弄乱GridLayout行

时间:2014-05-27 13:21:11

标签: android android-gridlayout

我有一个GridLayout,用于托管多个按钮,按两列排序。 所有按钮都有固定的高度和宽度。 如果其中一个按钮包含太多文本,则布局混乱。我希望布局能够正确地保持行,无论按钮是否有太多文本(我将处理以后显示太多文本的情况,使用自动文本大小)。

这是我的代码:

<GridLayout
        android:id="@+id/cont_middle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="3dp"
        android:layout_marginRight="3dp"
        android:layout_marginTop="2dp"
        android:columnCount="2"
        >

        <Button android:layout_width="120dp" android:layout_height="60dp" android:text="test"/>
        <Button android:layout_width="120dp" android:layout_height="60dp" android:text="test"/>
        <Button android:layout_width="120dp" android:layout_height="60dp" android:text="this is a really long text"/>
        <Button android:layout_width="120dp" android:layout_height="60dp" android:text="test"/>
        <Button android:layout_width="120dp" android:layout_height="60dp" android:text="test"/>
        <Button android:layout_width="120dp" android:layout_height="60dp" android:text="test"/>
</GridLayout>

它的外观如下:

enter image description here

这是布局应该看起来的样子(永远不要写文字)

enter image description here

注意:我不想强制单行,我想要文本包装,如果它想要,按钮似乎不会改变它的高度,但我不想让它移动。

我错过了什么?

谢谢。

2 个答案:

答案 0 :(得分:4)

您应该将按钮放在linearLayout中,并将按钮的大小设置为线性布局。在线性布局中,您的按钮作为填充父级的宽度和高度。这样你的视图就不会搞砸了。

答案 1 :(得分:2)

你可以通过简单地向按钮添加最大高度来实现它

android:maxHeight="60dp"