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)
这不起作用.我已centerInParent到true了一个视图,并且做了工作.但是,我无法使用此解决方案,因为我有两个并排的视图需要集中在一起.试图优化这个,所以我想避免嵌套布局,特别是线性,彼此内部.
有什么明显的东西让我失踪吗?我认为这个属性是针对这种情况做出的.
我在没有使用嵌套ViewGroup的情况下回答了涉及三个视图的类似问题.
这在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)
您需要将多个布局嵌套在一起.要将某些内容置于RelativeLayout中,您可以android:layout_centerInParent="true"在子项上使用.如果你试图让几个孩子居中,他们最终会在对方之下.
因此,例如,您可以使用具有两个视图的LinearLayout作为RelativeLayout的子视图,而LinearLayout具有android:orientation="horizontal"和android:layout_centerInParent="true".LinearLayout现在应该在RelativeLayout中居中,两个孩子彼此相邻.
| 归档时间: |
|
| 查看次数: |
23758 次 |
| 最近记录: |