android 如何将 TextView 在父级的整个宽度内居中?
android how to center a TextView within the full width of the parent?
我有一个 Checkbox 和一个 TextView,它们固定在 UI 的左侧。我有另一个 TextView "newcard #",我想将其居中放置在父级的整个宽度中。父宽度为从左到右的白色space运行,如下图。注意 "newcard #" 如何位于红色中心线的右侧。基本上我希望 "newcard #" 以红色中心线为中心。
我尝试了重力和 layout_gravity 的多种组合,但都没有成功。我在这里错过了什么?
item.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"
android:layout_marginTop="4dp"
android:layout_marginBottom="4dp"
card_view:cardBackgroundColor="@android:color/white"
card_view:cardCornerRadius="6dp"
card_view:cardElevation="4dp" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background_selector" >
<CheckBox
android:id="@+id/chkSelected"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_marginLeft="4dp"
android:layout_marginStart="4dp"
android:layout_marginTop="4dp"
android:gravity="center"
android:background="#008080" />
<TextView
android:id="@+id/cardType1"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_toRightOf="@+id/chkSelected"
android:layout_toEndOf="@+id/chkSelected"
android:paddingStart="3dp"
android:paddingLeft="3dp"
android:paddingEnd="6dp"
android:paddingRight="6dp"
android:layout_marginTop="4dp"
android:gravity="center"
android:textColor="#ffffff"
android:textStyle="bold|italic"
style="@style/Base.TextAppearance.AppCompat.Subhead" />
<TextView
android:id="@+id/cardBlankText1"
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_toRightOf="@+id/cardType1"
android:layout_toEndOf="@+id/cardType1"
android:layout_marginTop="4dp"
android:layout_marginLeft="6dp"
android:layout_marginStart="6dp"
android:gravity="center_horizontal"
android:textColor="@color/colorFlLabelFinal"
android:textStyle="bold"
style="@style/Base.TextAppearance.AppCompat.Subhead" />
我只保留了RelativeLayout,希望结果不会改变。
已删除:
android:layout_toEndOf="@+id/cardType1"
android:layout_toRightOf="@+id/cardType1"
并插入:
android:layout_centerHorizontal="true"
所以:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background_selector">
<CheckBox
android:id="@+id/chkSelected"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="4dp"
android:layout_marginStart="4dp"
android:layout_marginTop="4dp"
android:background="#008080"
android:gravity="center"/>
<TextView
android:id="@+id/cardType1"
style="@style/Base.TextAppearance.AppCompat.Subhead"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_marginTop="4dp"
android:layout_toEndOf="@+id/chkSelected"
android:layout_toRightOf="@+id/chkSelected"
android:gravity="center"
android:paddingEnd="6dp"
android:paddingLeft="3dp"
android:paddingRight="6dp"
android:paddingStart="3dp"
tools:text="Work"
android:textColor="#ffffff"
android:textStyle="bold|italic"/>
<TextView
android:id="@+id/cardBlankText1"
style="@style/Base.TextAppearance.AppCompat.Subhead"
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_marginLeft="6dp"
android:layout_marginStart="6dp"
android:layout_marginTop="4dp"
android:layout_centerHorizontal="true"
android:gravity="center_horizontal"
tools:text="newcard#"
android:textColor="@color/colorFlLabelFinal"
android:textStyle="bold"/>
<TextView
android:id="@+id/cardBlankTextNumsTotal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="fggfhfg"
android:layout_toRightOf="@id/cardBlankText1"/>
</RelativeLayout>
我有一个 Checkbox 和一个 TextView,它们固定在 UI 的左侧。我有另一个 TextView "newcard #",我想将其居中放置在父级的整个宽度中。父宽度为从左到右的白色space运行,如下图。注意 "newcard #" 如何位于红色中心线的右侧。基本上我希望 "newcard #" 以红色中心线为中心。
我尝试了重力和 layout_gravity 的多种组合,但都没有成功。我在这里错过了什么?
item.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"
android:layout_marginTop="4dp"
android:layout_marginBottom="4dp"
card_view:cardBackgroundColor="@android:color/white"
card_view:cardCornerRadius="6dp"
card_view:cardElevation="4dp" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background_selector" >
<CheckBox
android:id="@+id/chkSelected"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_marginLeft="4dp"
android:layout_marginStart="4dp"
android:layout_marginTop="4dp"
android:gravity="center"
android:background="#008080" />
<TextView
android:id="@+id/cardType1"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_toRightOf="@+id/chkSelected"
android:layout_toEndOf="@+id/chkSelected"
android:paddingStart="3dp"
android:paddingLeft="3dp"
android:paddingEnd="6dp"
android:paddingRight="6dp"
android:layout_marginTop="4dp"
android:gravity="center"
android:textColor="#ffffff"
android:textStyle="bold|italic"
style="@style/Base.TextAppearance.AppCompat.Subhead" />
<TextView
android:id="@+id/cardBlankText1"
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_toRightOf="@+id/cardType1"
android:layout_toEndOf="@+id/cardType1"
android:layout_marginTop="4dp"
android:layout_marginLeft="6dp"
android:layout_marginStart="6dp"
android:gravity="center_horizontal"
android:textColor="@color/colorFlLabelFinal"
android:textStyle="bold"
style="@style/Base.TextAppearance.AppCompat.Subhead" />
我只保留了RelativeLayout,希望结果不会改变。 已删除:
android:layout_toEndOf="@+id/cardType1"
android:layout_toRightOf="@+id/cardType1"
并插入:
android:layout_centerHorizontal="true"
所以:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background_selector">
<CheckBox
android:id="@+id/chkSelected"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="4dp"
android:layout_marginStart="4dp"
android:layout_marginTop="4dp"
android:background="#008080"
android:gravity="center"/>
<TextView
android:id="@+id/cardType1"
style="@style/Base.TextAppearance.AppCompat.Subhead"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_marginTop="4dp"
android:layout_toEndOf="@+id/chkSelected"
android:layout_toRightOf="@+id/chkSelected"
android:gravity="center"
android:paddingEnd="6dp"
android:paddingLeft="3dp"
android:paddingRight="6dp"
android:paddingStart="3dp"
tools:text="Work"
android:textColor="#ffffff"
android:textStyle="bold|italic"/>
<TextView
android:id="@+id/cardBlankText1"
style="@style/Base.TextAppearance.AppCompat.Subhead"
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_marginLeft="6dp"
android:layout_marginStart="6dp"
android:layout_marginTop="4dp"
android:layout_centerHorizontal="true"
android:gravity="center_horizontal"
tools:text="newcard#"
android:textColor="@color/colorFlLabelFinal"
android:textStyle="bold"/>
<TextView
android:id="@+id/cardBlankTextNumsTotal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="fggfhfg"
android:layout_toRightOf="@id/cardBlankText1"/>
</RelativeLayout>