我有一个“后退”和一个“主页”按钮,我试图与屏幕的右上角对齐。我希望两个按钮的大小相同,但仍然是wrap_content
,这样它们就不会占用额外的空间。以下布局几乎可以工作,只是主页按钮略微搞砸了,它比后退按钮稍微小一些。
任何人都有任何想法如何解决这个问题?
如果我将第二个LinearLayout更改为fill_parent
,则按钮变为均匀宽度并完美对齐,但它们会占用太多空间并变得非常宽。
截图:
代码:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:orientation="horizontal">
<Button
android:id="@+id/home"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Home" />
<Button
android:id="@+id/back"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Back" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>
谢谢!
答案 0 :(得分:3)
这是因为您选择的宽度不足以适合第一个按钮的文本。然后文本被包裹在两行上。这反过来导致默认基线对齐机制将第一个按钮向下移动。要实现您的目标,请将属性measureWithLargestChild添加到LinearLayout:
<LinearLayout
android:measureWithLargestChild="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:orientation="horizontal">
<Button
android:id="@+id/home"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Home" />
<Button
android:id="@+id/back"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Back" />
</LinearLayout>
答案 1 :(得分:1)
我有同样的问题。原因是,baselineAligned
的默认值为true
,因此向下移动按钮以使文本位于同一基线上。将LinearLayout
上的值设置为false
会解决问题。尝试将此属性添加到LinearLayout
:
android:baselineAligned="false"