线性布局中心化

Posted

技术标签:

【中文标题】线性布局中心化【英文标题】:Linear Layout centeralization 【发布时间】:2016-06-10 03:58:37 【问题描述】:

我的 LinearLayout 中心化有一些问题,这是我的 xml 布局的一部分:

<LinearLayout
    android:orientation="vertical"
    android:layout_
    android:layout_>

    <android.support.v7.widget.RecyclerView
        android:id="@+id/rv_payment_card_numbers"
        android:layout_
        android:layout_

        android:visibility="gone"
        >

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

    <TextView
        android:layout_gravity="center_horizontal|center_vertical"
        android:textSize="@dimen/secondary_text"
        android:text="You have no credit cards"
        android:textStyle="italic"
        android:layout_
        android:layout_ />

</LinearLayout>

我得到了这样的布局:

但我想将我的短信垂直居中。 有什么想法吗?

【问题讨论】:

使用相对布局? @JyotmanSingh 如果是建议,我想使用线性布局,如果是问题,我的 xml 中没有相对布局。 在你的线性布局中添加这行代码 android:gravity="'center|center_horizo​​ntal" 【参考方案1】:

最重要的是让你的 TextView 与你父母的身高相匹配。如果将其设置为 wrap_content,那么它将无法居中,因为 TextView 没有垂直高度。

只需使用这个 TextView 代码 -

<TextView
android:layout_gravity="center_horizontal|center_vertical"
android:textSize="12sp"
android:gravity="fill_vertical"
android:text="You have no credit cards"
android:textStyle="italic"
android:layout_
android:layout_ />

我添加了android:gravity="fill_vertical" 并创建了android:layout_height="match_parent"

【讨论】:

【参考方案2】:

我更新了我的评论。这是经过测试和工作的。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_
android:gravity="center|center_horizontal"
android:layout_>

<android.support.v7.widget.RecyclerView
    android:id="@+id/rv_payment_card_numbers"
    android:layout_
    android:layout_
    android:visibility="gone">

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

<TextView
    android:layout_gravity="center_horizontal|center_vertical"
    android:text="You have no credit cards"
    android:textStyle="italic"
    android:layout_
    android:layout_ />

</LinearLayout>

【讨论】:

【参考方案3】:

使用 安卓:layout_gravity="center" 作为 TextView 的一个属性。

或者,您也可以将根布局(当前为 LinearLayout)更改为 RelativeLayout,然后添加 centerInParent="真" TextView 的属性。

【讨论】:

【参考方案4】:

试试这个:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:gravity="center"
    android:layout_
    android:orientation="vertical" >

    <android.support.v7.widget.RecyclerView
        android:id="@+id/rv_payment_card_numbers"
        android:layout_
        android:layout_
        android:visibility="gone" >
    </android.support.v7.widget.RecyclerView>

    <TextView
        android:layout_
        android:layout_
        android:layout_gravity="center_horizontal|center_vertical"
        android:text="You have no credit cards"
        android:textSize="@dimen/secondary_text"
        android:textStyle="italic" />

</LinearLayout>

【讨论】:

【参考方案5】:

使用这个肯定会垂直对齐你的短信

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:orientation="vertical"
    android:gravity="center_vertical"

    >
    <LinearLayout
        android:orientation="vertical"
        android:layout_
        android:layout_
        android:gravity="center_vertical"
        >

        <android.support.v7.widget.RecyclerView
            android:id="@+id/rv_payment_card_numbers"
            android:layout_
            android:layout_

            android:visibility="gone"
            >

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

        <TextView

            android:gravity="center_horizontal"
            android:text="You have no credit cards"
            android:textStyle="italic"
            android:layout_
            android:layout_ />

    </LinearLayout>
</LinearLayout>

【讨论】:

以上是关于线性布局中心化的主要内容,如果未能解决你的问题,请参考以下文章

在其线性布局垂直父Android中将以编程方式创建的单选按钮居中

如何以编程方式在顶部和底部的垂直线性布局中设置一个视图?

如何使用线性布局添加背景图像作为根布局并具有嵌套线性布局

android,线性布局1,里面嵌套线性布局2(垂直排列),想让2在1里是垂直居中的,怎么搞?

Android UI布局-1.1线性布局-线性布局基础

垂直线性布局内的水平线性布局