0

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

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

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

    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);

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

4

2 回答 2

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>

谢谢。

于 2013-01-22T19:41:29.510 回答
0

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

于 2013-01-22T19:20:29.823 回答