android:layout_gravity效果在main.xml中?

时间:2010-09-29 14:26:40

标签: android

我有4个水平线性布局的按钮。我希望第4个按钮的右边缘与线性布局的右边缘对齐(等于屏幕宽度)我尝试使用android:layout_gravity =“right”但它不起作用 - 右边的按钮是在第3个右边但没有右对齐。我错过了一些明显的东西吗?

只有相关布局参数的

main.xml是:

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
       <Button
           android:layout_height="fill_parent"
           android:layout_width="wrap_content">
       <Button SAME LAYOUT AS BUTTON 1>
       <Button SAME LAYOUT AS BUTTON 1>

       <Button
           android:layout_height="fill_parent"
           android:layout_width="wrap_content"
           android:layout_gravity="right" />
    </LinearLayout>
</LinearLayout>

这似乎与SDK引用中layout_gravity的声明行为不匹配:“定义如何将视图(x轴和y轴)放置在其父视图组中。”

1 个答案:

答案 0 :(得分:3)

我知道这不是你问题的正确答案,但你应该考虑使用RelativeLayout而不是LinearLayout。它可以更好地扩展到不同的手机屏幕分辨率,您可以使用XML中的layout_toRightOflayout_alignParentRight属性(或layout_abovelayout_alignParentTop按正确的顺序放置按钮等)。在线性布局中使用重力并不会像您期望的那样,因为Android仍在尝试将小部件放置在固定位置。

RelativeLayout比LinearLayout更难以实现,但它值得一试,也是谷歌推荐使用的。一旦掌握了它,就可以非常方便地使用它。