在一个水平方向的LinearLayout中有两个按钮,它们看起来像这样:
如果我在按钮之前添加“Space”小部件,那么LinearLayout xml就是这样:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Space
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="2" />
<Button
android:id="@+id/btnFetch"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/button_Fetch" />
<Button
android:id="@+id/btnCancel"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/button_Cancel" />
</LinearLayout>
...我对它的外观感到满意,按钮“右对齐”:
......但这是“正确”的做法吗?
在模拟时,“取消”按钮的文字被包裹成两行,所以我为它添加了“行”属性并调整了重量值(而不是2,1,1,它们现在是42,29,29并且它看起来恰好在模拟时间。
答案 0 :(得分:1)
我不知道Space
课程,谢谢你发现了那个课程。
无论如何,不,我不会这样做。
我倾向于避免添加视图和视图,如果我可以用更少的实现相同的结果。
即:添加
android:layout_margin="someValueInDP"
到按钮容器 OR (作为替代方案)您可以添加它:
android:padding="someValueInDP"
记下小部件数量有助于演出
<强> [编辑] 强>
layout_margin
和padding
之间的差异,众所周知(好吧,他/她应该),边距是视图/容器外的空间,而填充是一个空间INSIDE它。
只是要明确细微差别。
换句话说:设置边距将保留OUTER颜色作为“空格”背景,而填充将放大LinearLayout并且可以看到ITS颜色(如果与它所在的容器不同)。