TextView不会在父RelativeLayout中居中

时间:2017-05-31 07:37:11

标签: android android-layout

我正在尝试将TextView置于RelativeLayout中心,但由于某种原因,TextView的位置并不完全位于中心,它位于中心位置,稍微向下。添加第二个RelativeLayout,没有id的那个。

时会发生此问题

以下是我尝试解决问题的两种方法但没有成功:

第一:

<RelativeLayout
   android:id="@+id/minus_one"
   android:layout_width="45dp"
   android:layout_height="match_parent"
   android:background="@color/lightgrey">

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/ractangle_visual_feedback_selector"
                android:gravity="center">


            <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textSize="22dp"
                    android:textStyle="bold"
                    android:text="-"/>

                </RelativeLayout>
            </RelativeLayout>

第二

<RelativeLayout
                    android:id="@+id/minus_one"
                    android:layout_width="45dp"
                    android:layout_height="match_parent"
                    android:background="@color/lightgrey">

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:background="@drawable/ractangle_visual_feedback_selector">


                <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerVertical="true"
                        android:layout_centerHorizontal="true"
                        android:textSize="22dp"
                        android:textStyle="bold"
                        android:text="-"/>

                    </RelativeLayout>
                </RelativeLayout>

5 个答案:

答案 0 :(得分:3)

更改根Relative Layout android:layout_width to "match_parent"。从父android:gravity="center"删除Relative Layout没有必要。现在将android:layout_centerInParent="true"添加到您的Text View

试试这个xml。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/minus_one"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorAccent">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">


        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:text="Testing"
            android:textSize="22dp"
            android:textStyle="bold" />

    </RelativeLayout>
</RelativeLayout>

答案 1 :(得分:2)

更改layout_width以匹配父

 android:layout_width="match_parent"

答案 2 :(得分:2)

试试这个 android:layout_centerInParent =“true”

<RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="22dp"
                android:textStyle="bold"
                android:layout_centerInParent="true"
                android:text="-"/>
        </RelativeLayout>

答案 3 :(得分:1)

尝试以下代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/minus_one"
    android:layout_width="45dp"
    android:layout_height="match_parent"
    android:background="@color/gray"
    android:layout_gravity="center">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/white">


        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:textSize="22dp"
            android:textAlignment="center"
            android:gravity="center_vertical"
            android:textStyle="bold"
            android:text="-"/>

    </RelativeLayout>
</RelativeLayout>

答案 4 :(得分:1)

#。如果TextView高度宽度用作fixed尺寸或wrap_content,则使用属性android:layout_centerInParent="true" {{1}将其父级的TextView位置对齐。

center

<强>输出:

enter image description here

#。如果<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/holo_red_light"> <RelativeLayout android:layout_width="100dp" android:layout_height="100dp" android:background="@android:color/holo_green_light" android:layout_centerInParent="true"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:textSize="22dp" android:textStyle="bold" android:text="-" android:background="@android:color/white"/> </RelativeLayout> </RelativeLayout> 高度宽度用作TextView,请使用match_parent属性android:gravity="center"来对齐TextView center 1}}其父母的位置。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/holo_red_light">

    <RelativeLayout
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:background="@android:color/holo_green_light"
        android:layout_centerInParent="true">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:textSize="22dp"
            android:textStyle="bold"
            android:text="-"
            android:background="@android:color/white"/>

    </RelativeLayout>
</RelativeLayout>

<强>输出:

enter image description here

希望这会有所帮助〜