线性布局中心化
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_horizontal" 【参考方案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中将以编程方式创建的单选按钮居中