Android布局对齐问题

时间:2011-01-17 17:32:09

标签: android android-layout

所以我想让我的布局看起来像这样:

| button       text       button |

这样文本就会在我的两个按钮之间居中。我首先尝试使用LinearLayouts和layout_gravity标签,但这会给我一些类似的东西:

|        buttontextbutton        |

现在我有一个相对布局,其中包含alignParentLeft / Right和centerInParent标签,但布局现在看起来像

| button text buttonnnnnnnnnnnnn |

有没有办法让我的布局正确,文字可以改变长度?

谢谢, 杰克

3 个答案:

答案 0 :(得分:3)

使用具有水平方向设置的线性布局。删除所有重力/对齐设置。接下来使用

android:layout_weight="1"

在两个按钮和textview中。这应该会给你你想要的东西。

编辑:你问它是如何工作的。这来自developer doc

  

LinearLayout还支持分配   个别孩子的体重。这个   属性赋予“重要性”   视图的值,并允许它   展开以填充任何剩余空间   父视图。儿童观点可以   指定整数权重值,和   那么视图中的任何剩余空间   组被分配给儿童   声明重量的比例。   默认权重为零。例如,   如果有三个文本框和两个   他们宣称权重为1,而   另一个没有给予重量(0),   没有重量的第三个文本框不会   成长,只会占领该地区   其内容所要求的。另外两个   将平均扩大以填补空间   在所有三个盒子之后剩下的   测量。如果是第三个盒子的话   如果权重为2(而不是0),   那么它现在被宣布为“更多   重要的是“比其他人都重要,所以它   获得剩余空间的一半,   而前两个人分享其余的   同样。

答案 1 :(得分:0)

你应该可以使用LinearLayout来做到这一点。试试这个:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    >
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button 1"
        />
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="TextView Centered"
        android:gravity="center"
        android:layout_weight="1"
        />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button 2"
        />
</LinearLayout>

在这种情况下,我不确定layout_weight属性是否必要。您可以尝试或不使用,但这应该可以解决问题。

答案 2 :(得分:0)

我建议你试试<TableLayout>。确保在您的案例中设置android:stretchColumns="0,1,2"

<TableLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:stretchColumns="0,1,2">