我有以下代码,其中包含TextView
和Button
。它们都应该看起来居中:
<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>
但是当我进入视图时,它看起来像这样:
为什么不对齐?我认为 gravity =“center_horizontal”应该这样做......
答案 0 :(得分:2)
请记住,在RelativeLayout gravity 属性不可用的情况下,这就是它无法正常工作的原因。要使元素居中对齐,请将 layout_centerHorizontal 属性指定为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" />