RelativeLayout重心不起作用

Fra*_*aro 13 android center gravity android-relativelayout

我试图在RelativeLayout一个基础上水平居中几个视图.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center_horizontal"
    android:background="@android:color/transparent" >
Run Code Online (Sandbox Code Playgroud)

这不起作用.我已centerInParenttrue了一个视图,并且做了工作.但是,我无法使用此解决方案,因为我有两个并排的视图需要集中在一起.试图优化这个,所以我想避免嵌套布局,特别是线性,彼此内部.

有什么明显的东西让我失踪吗?我认为这个属性是针对这种情况做出的.

min*_*iot 9

我在没有使用嵌套ViewGroup的情况下回答了涉及三个视图的类似问题.

/sf/answers/929589251/

这在API 11中进行了测试.

对于两个视图水平情况:

<RelativeLayout
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:gravity="center"
  android:background="@android:color/black"
  >
  <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"
    />
  <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_toRightOf="@id/apply"
    />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

对于两个视图垂直情况:

<RelativeLayout
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:gravity="center"
  android:background="@android:color/black"
  >
  <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"
    />
  <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_below="@id/apply"
    />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)


Joa*_*und 5

您需要将多个布局嵌套在一起.要将某些内容置于RelativeLayout中,您可以android:layout_centerInParent="true"在子项上使用.如果你试图让几个孩子居中,他们最终会在对方之下.

因此,例如,您可以使用具有两个视图的LinearLayout作为RelativeLayout的子视图,而LinearLayout具有android:orientation="horizontal"android:layout_centerInParent="true".LinearLayout现在应该在RelativeLayout中居中,两个孩子彼此相邻.

  • 好吧,如果你不能嵌套布局,就没办法(好看).至少据我所知. (3认同)