RelativeLayout中心项不起作用

时间:2015-11-18 12:59:50

标签: android

我有以下代码,其中包含TextViewButton。它们都应该看起来居中:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/register_background"
    android:gravity="center_horizontal" >

<TextView
    android:id="@+id/text_NoProfile"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:visibility="visible"
    android:text="No items in profiles database." />

<Button
    android:id="@+id/buttonAddProfile"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="10dp"
    android:layout_marginTop="5dp"
    android:background="@drawable/button_style"
    android:text="Add profile"
    android:layout_below="@id/text_NoProfile"
    android:textColor="#ffffff" />
</RelativeLayout>

但是当我进入视图时,它看起来像这样:

enter image description here

为什么不对齐?我认为 gravity =“center_horizo​​ntal”应该这样做......

4 个答案:

答案 0 :(得分:2)

请记住,在RelativeLayout gravity 属性不可用的情况下,这就是它无法正常工作的原因。要使元素居中对齐,请将 layout_centerHorizo​​ntal 属性指定为true。否则请使用LinearLayout而不是RelativeLayout。

答案 1 :(得分:2)

gravity = "center_horizontal"无效,因为您的RelativeLayout的父级不是LinearLayout也不是FrameLayout,您应该使用android:layout_centerHorizontal="true"代替以下内容:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/register_background"
    android:layout_centerHorizontal="true" >

<TextView
    android:id="@+id/text_NoProfile"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:visibility="visible"
    android:layout_centerHorizontal="true"
    android:text="No items in profiles database." />

<Button
    android:id="@+id/buttonAddProfile"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="10dp"
    android:layout_marginTop="5dp"
    android:background="@drawable/button_style"
    android:text="Add profile"
    android:layout_centerHorizontal="true"
    android:layout_below="@id/listView_users"
    android:textColor="#ffffff" />
</RelativeLayout>

答案 2 :(得分:1)

添加 android:layout_centerHorizontal="true" 两个元素。

答案 3 :(得分:1)

试试这个

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:gravity="center">

<TextView
    android:id="@+id/text_NoProfile"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:visibility="visible"
    android:text="No items in profiles database."
    android:gravity="center"
    />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="41dp"
    android:layout_below="@+id/text_NoProfile"
    android:layout_centerHorizontal="true" />