相对布局内的文本水平对齐

时间:2018-03-21 09:28:45

标签: android android-layout tablet android-relativelayout

我为平板电脑设计创建了此布局。但是,文本未在中心对齐。

tablet layout

这是我的xml代码。

<android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        xmlns:tools="http://schemas.android.com/tools"
        card_view:cardCornerRadius="4dp"
        android:layout_margin="5dp"
        android:layout_alignParentTop="false"
        android:layout_centerHorizontal="false"
        android:layout_gravity="center_horizontal">

        <RelativeLayout
            android:background="@color/colorPrimaryDark"
            android:layout_width="300dp"
            android:layout_height="200dp"
            android:gravity="center_horizontal"
            >

            <TextView
                android:id="@+id/recipe_name_text_view"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_centerHorizontal="true"
                android:textAlignment="center"
                android:gravity="center"
                android:textAppearance="@style/TextAppearance.AppCompat.Body1"
                android:textColor="#fff"
                android:textSize="24sp"
                tools:text="sample text" />

        </RelativeLayout>

    </android.support.v7.widget.CardView>

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

使用重力属性

 <TextView
    android:id="@+id/recipe_name_text_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true"
    android:textAlignment="center"
    android:gravity="center"
    android:textAppearance="@style/TextAppearance.AppCompat.Body1"
    android:textColor="#fff"
    android:textSize="24sp"
    tools:text="sample text" />

答案 1 :(得分:1)

尝试:

<android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    xmlns:tools="http://schemas.android.com/tools"
    card_view:cardCornerRadius="4dp"
    android:layout_margin="5dp"
    android:layout_alignParentTop="false"
    android:layout_centerHorizontal="false"
    android:layout_gravity="center_horizontal">

    <RelativeLayout
        android:background="@color/colorPrimaryDark"
        android:layout_width="300dp"
        android:layout_height="200dp"
        android:layout_gravity="center"
        >

        <TextView
            android:id="@+id/recipe_name_text_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_centerHorizontal="true"
            android:textAlignment="center"
            android:gravity="center"
            android:textAppearance="@style/TextAppearance.AppCompat.Body1"
            android:textColor="#fff"
            android:textSize="24sp"
            tools:text="sample text" />



    </RelativeLayout>

</android.support.v7.widget.CardView>

答案 2 :(得分:1)

设置相关布局的@android:layout_gravity =“center”。

 <RelativeLayout
        android:background="@color/colorPrimaryDark"
        android:layout_width="300dp"
        android:layout_height="200dp"
        android:layout_gravity="center">

< TextView
            android:id="@+id/recipe_name_text_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            .................
            ................
            ................
            ................/>

    </RelativeLayout>