如何使四个具有未知文本的按钮具有相同的宽度

时间:2013-01-22 19:15:50

标签: android android-button

在我的应用程序中,我有一个带有四个按钮的屏幕,一个在另一个上面。这些按钮的文本取决于用户输入的内容,因此我不知道哪个按钮最大。

我想对齐它们,使按钮的左侧全部与最宽的按钮对齐,按钮的右侧全部与最宽按钮的右侧对齐。

为了解决我的问题,我写了这个:

    int biggestWidth=buttonA.getWidth();

    if(biggestWidth<buttonB.getWidth()){//if the width of button b is bigger than the width of button a

        biggestWidth = buttonB.getWidth();

    } if(biggestWidth<buttonC.getWidth()){

        biggestWidth = buttonC.getWidth();

    } if (biggestWidth<buttonD.getWidth()){

        biggestWidth= buttonD.getWidth();
    }
buttonA.setWidth(biggestWidth);
    buttonB.setWidth(biggestWidth);//sets all the buttons to the width of the biggest one
    buttonC.setWidth(biggestWidth);
    buttonD.setWidth(biggestWidth);

但这不起作用,因为按钮的边缘都与第一个按钮的边缘对齐,而不是与文本最多的边缘对齐。有谁知道/认为他们知道我哪里出错了?

2 个答案:

答案 0 :(得分:2)

尝试使用此布局模式:

<LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <Button
            android:id="@+id/button1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="show" />

        <Button
            android:id="@+id/button2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="show123" />

        <Button
            android:id="@+id/button3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="show12345686" />
</LinearLayout>

感谢。

答案 1 :(得分:0)

按钮调用权重有一个权重属性。利用它并为该行中的所有按钮添加相同的权重(如1)。