在一个RelativeLayout中居中放置多个项目,而不将它们放入容器中?

我有一个RelativeLayout,它包含一对并排按钮,我想要在布局中居中。 我可以将按钮放在LinearLayout中,并将其放在RelativeLayout中,但我希望尽可能保持xml尽可能干净。

这是我尝试的,这只是在中心的“应用”按钮和左边的“撤消”按钮:

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="15sp">
  <TextView
    android:id="@+id/instructions"
    android:text="@string/instructions"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="15sp"
    android:layout_centerHorizontal="true"
    />
  <Button
    android:id="@+id/apply"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:text="@string/apply"
    android:textSize="20sp"
    android:layout_below="@id/instructions"
    />
  <Button
    android:id="@+id/undo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:text="@string/undo"
    android:textSize="20sp"
    android:layout_toLeftOf="@id/apply"
    android:layout_below="@id/instructions"
    />
</RelativeLayout>

android:gravity将对齐view的内容或其使用的layout

android:layout_gravity将对齐其父viewlayout

所以补充

android:gravity="center"

你的RelativeLayout应该做的伎俩......

喜欢这个:

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:layout_marginTop="15sp">

</RelativeLayout>

这是BrainCrash答案的延伸。 这是一个非嵌套选项,可以将所有三个水平和垂直分组和居中。 另外,它将顶部的TextView放在两个按钮的水平中央。 如果需要,您可以使用android:gravity =“center”将文本置于TextView中间。 我还删除了边距,添加了颜色,并将RelativeLayout高度设置为fill_parent以突出显示布局。 测试API 11。

<RelativeLayout
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:gravity="center"
  android:background="@android:color/black"
  >
  <TextView
    android:id="@+id/instructions"
    android:text="TEST"
    android:textSize="20sp"
    android:background="@android:color/darker_gray"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_alignLeft="@+id/undo"
    android:layout_alignRight="@+id/apply"
    android:gravity="center"
    />
  <Button
    android:id="@+id/apply"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:text="APPLY"
    android:textSize="20sp"
    android:layout_below="@id/instructions"
    />
  <Button
    android:id="@+id/undo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:text="UNDO"
    android:textSize="20sp"
    android:layout_toLeftOf="@id/apply"
    android:layout_below="@id/instructions"
    />
</RelativeLayout>

android:layout_gravity="center"

几乎会给你想要的。

链接地址: http://www.djcxy.com/p/93309.html

上一篇: Center multiple items in a RelativeLayout without putting them in a container?

下一篇: Android relative layout problem with gravity