首页 > 解决方案 > 如何在线性布局中保持 TextView 为中心

问题描述

这是我的 xml 代码,我希望将中心保持Textview在包含textview和查看的线性布局内,但我希望文本视图在线性布局底部显示中心以查看,即按钮textview应该从顶部视图和底部居中linearLayout

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/no_vouchers_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

<android.support.v7.widget.CardView
    android:id="@+id/xxlayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="@dimen/header_height"
    android:visibility="gone"
    tools:visibility="visible">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="@dimen/margin_12"
        android:orientation="vertical">

        <TextView
            android:id="@+id/xxmessage"
            style="@style/Typeface.Body.TextMidGrey"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:lineSpacingExtra="@dimen/tfl_6"
            tools:text="KJGSAHJDGJKSGDASAGDHJGAS" />

        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:layout_marginTop="@dimen/margin_16"
            android:background="@color/text_light_grey" />
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <TextView

                android:id="@+id/button"
                style="@style/Typeface.Body.Bold.White"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="@dimen/margin_16"
                android:paddingBottom="@dimen/padding_12"
                android:paddingTop="@dimen/padding_12"
                android:background="@drawable/welcome_screen_button_selector"
                android:layout_centerHorizontal="true"
                android:layout_gravity="center"
                android:gravity="center"
                android:text="@string/convert_points_to_vouchers"
                android:textAllCaps="false" />
        </LinearLayout>

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

标签: androidandroid-layout

解决方案


使用android:layout_width="match_parent"& android:gravity="center"你的 TextView它会工作

用这个

 <TextView
     android:id="@+id/xxmessage"
     style="@style/Typeface.Body.TextMidGrey"
     android:layout_width="match_parent"
     android:gravity="center"
     android:layout_height="wrap_content"
     android:lineSpacingExtra="@dimen/tfl_6"
     tools:text="KJGSAHJDGJKSGDASAGDHJGAS" />

而不是这个

<TextView
      android:id="@+id/xxmessage"
      style="@style/Typeface.Body.TextMidGrey"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:lineSpacingExtra="@dimen/tfl_6"
      tools:text="KJGSAHJDGJKSGDASAGDHJGAS" />

示例代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/no_vouchers_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.CardView
        android:id="@+id/xxlayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/header_height"
        android:visibility="gone"
        tools:visibility="visible">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="@dimen/margin_12"
            android:orientation="vertical">

            <TextView
                android:id="@+id/xxmessage"
                style="@style/Typeface.Body.TextMidGrey"
                android:layout_width="match_parent"
                android:gravity="center"
                android:layout_height="wrap_content"
                android:lineSpacingExtra="@dimen/tfl_6"
                tools:text="KJGSAHJDGJKSGDASAGDHJGAS" />

            <View
                android:layout_width="match_parent"
                android:layout_height="1dp"
                android:layout_marginTop="@dimen/margin_16"
                android:background="@color/text_light_grey" />
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:gravity="center"
                android:orientation="vertical">

                <TextView    
                    android:id="@+id/button"
                    style="@style/Typeface.Body.Bold.White"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="@dimen/margin_16"
                    android:paddingBottom="@dimen/padding_12"
                    android:paddingTop="@dimen/padding_12"
                    android:background="@drawable/welcome_screen_button_selector"
                    android:layout_centerHorizontal="true"
                    android:layout_gravity="center"
                    android:gravity="center"
                    android:text="@string/convert_points_to_vouchers"
                    android:textAllCaps="false" />
            </LinearLayout>

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

推荐阅读