线性布局居中
Linear Layout centeralization
我的 LinearLayout 中心化有一些问题,这是我的 xml 布局的一部分:
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="300dp">
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_payment_card_numbers"
android:layout_width="match_parent"
android:layout_height="wrap_content"
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_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
结果我得到了那个布局:
但我想将我的短信垂直居中。
有什么想法吗?
我已经更新了我的评论。这已经过测试并且可以正常工作。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:gravity="center|center_horizontal"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_payment_card_numbers"
android:layout_width="match_parent"
android:layout_height="wrap_content"
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_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
最重要的是让您的 TextView 与您 parent 的身高相匹配。如果它设置为 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_width="wrap_content"
android:layout_height="match_parent" />
我添加了 android:gravity="fill_vertical"
并制作了 android:layout_height="match_parent"
使用
android:layout_gravity="center"
作为 TextView 的属性。
或者,您也可以将根布局(当前为 LinearLayout)更改为 RelativeLayout,然后添加
centerInParent="true"
属性到 TextView。
试试这个:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:gravity="center"
android:layout_height="300dp"
android:orientation="vertical" >
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_payment_card_numbers"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone" >
</android.support.v7.widget.RecyclerView>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|center_vertical"
android:text="You have no credit cards"
android:textSize="@dimen/secondary_text"
android:textStyle="italic" />
</LinearLayout>
使用这个肯定会垂直对齐您的短信
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_vertical"
>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="300dp"
android:gravity="center_vertical"
>
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_payment_card_numbers"
android:layout_width="match_parent"
android:layout_height="wrap_content"
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_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
我的 LinearLayout 中心化有一些问题,这是我的 xml 布局的一部分:
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="300dp">
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_payment_card_numbers"
android:layout_width="match_parent"
android:layout_height="wrap_content"
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_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
结果我得到了那个布局:
但我想将我的短信垂直居中。 有什么想法吗?
我已经更新了我的评论。这已经过测试并且可以正常工作。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:gravity="center|center_horizontal"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_payment_card_numbers"
android:layout_width="match_parent"
android:layout_height="wrap_content"
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_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
最重要的是让您的 TextView 与您 parent 的身高相匹配。如果它设置为 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_width="wrap_content"
android:layout_height="match_parent" />
我添加了 android:gravity="fill_vertical"
并制作了 android:layout_height="match_parent"
使用 android:layout_gravity="center" 作为 TextView 的属性。
或者,您也可以将根布局(当前为 LinearLayout)更改为 RelativeLayout,然后添加 centerInParent="true" 属性到 TextView。
试试这个:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:gravity="center"
android:layout_height="300dp"
android:orientation="vertical" >
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_payment_card_numbers"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone" >
</android.support.v7.widget.RecyclerView>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|center_vertical"
android:text="You have no credit cards"
android:textSize="@dimen/secondary_text"
android:textStyle="italic" />
</LinearLayout>
使用这个肯定会垂直对齐您的短信
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_vertical"
>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="300dp"
android:gravity="center_vertical"
>
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_payment_card_numbers"
android:layout_width="match_parent"
android:layout_height="wrap_content"
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_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>