在我的应用程序中,我有一个带有四个按钮的屏幕,一个在另一个上面。这些按钮的文本取决于用户输入的内容,因此我不知道哪个按钮最大。
我想对齐它们,使按钮的左侧全部与最宽的按钮对齐,按钮的右侧全部与最宽按钮的右侧对齐。
为了解决我的问题,我写了这个:
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);
但这不起作用,因为按钮的边缘都与第一个按钮的边缘对齐,而不是与文本最多的边缘对齐。有谁知道/认为他们知道我哪里出错了?
答案 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)。