看起来有很多关于居中,相同尺寸等的问题,但到目前为止我没有找到我的情况,所以我敢问:)
我需要的是这样的三个按钮的布局:
[ previous ][*select*] [ next ]
其中 [previous] 和 [next] 按钮属于相同大小(即在这种情况下,的大小[上一页] 按钮,因为它更大), [* select *] 按钮应拉伸以占据所有可用宽度。
按照在LinearLayout中制作相同大小的两个按钮的提示,我想出了以下xml文件:
<LinearLayout
android:id="@+id/button_bar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal" >
<Button
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_weight="1"
android:text="Previous" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="2"
android:text="Select" />
<Button
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_weight="1"
android:text="Next" />
</LinearLayout>
这几乎有效:) 除了一件事:不是让下一步按钮匹配上一页按钮的大小,而是让上一页按钮成为下一步 :) 因此,“Previous”文本包含在两行中,如
Previ
ous
Dunno如果这是一个bug或者没有,但是你能告诉我一个解决方法或其他方法来实现所需的布局吗?
谢谢!
答案 0 :(得分:1)
我建议使用RelativeLayout
<RelativeLayout
android:id="@+id/buttons"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:clickable="false">
<Button
android:id="@+id/previous"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:text="Previous"
android:layout_alignParentLeft="true"/>
<Button
android:id="@+id/next"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:text="Next"
android:layout_alignParentRight="true"/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Select"
android:layout_toRightOf="@id/previous"
android:layout_toLeftOf="@id/next" />
</RelativeLayout>
这应该有用。
答案 1 :(得分:1)
如果您要包含“android:layout_weight”,您应该将“android:layout_width”或“android:layout_height”指定为“fill_parent”
像这样修改你的代码
<LinearLayout
android:id="@+id/button_bar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal" >
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="2"
android:text="Previous" />
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:text="Select" />
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="2"
android:text="Next" />
答案 2 :(得分:0)
在那种情况下,我会选择一个TableLayout,其中你有一行,EACH按钮的权重为1。并将stretchColumn属性放到第1列。这有什么不同吗?
答案 3 :(得分:0)
除了在代码中执行此操作之外,我不确定您是否可以将大小与其他大小相匹配。最简单的解决方案可能是以dp / sp为单位调整上一个和下一个按钮宽度,直到它们看起来很好并且选择按钮是唯一具有layout_weight属性的按钮。