Android:发出水平居中的文本视图+垂直居中的按钮文本

时间:2015-12-09 13:46:19

标签: android

我需要将两个信息(“123456789”和“RACCOLTA PUNTI”)放在屏幕中。 这是(未)期望的结果:

enter image description here

这是我的XML布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/dashboard_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="@dimen/padding_left">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="@style/TextAppearance.AppCompat.Display2"
            android:id="@+id/card_number"
            android:gravity="center"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="@style/TextAppearance.AppCompat.Display1"
            android:id="@+id/name_campaign"
            android:gravity="center"/>

        <View
            android:layout_width="5dp"
            android:layout_height="20dp"
            android:layout_alignWithParentIfMissing="false"
            android:layout_centerVertical="true"
            android:layout_centerHorizontal="true"
            android:id="@+id/view_anchor"
            android:gravity="center_horizontal"/>

        <Button
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/btn_add"
            android:id="@+id/button_add"
            android:gravity="center_horizontal"/>

        <Button
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/btn_deduct"
            android:id="@+id/button_deduct"
            android:gravity="center_horizontal"/>

    </LinearLayout>

</RelativeLayout>

另一个问题:您可以注意到按钮中的文本不是居中(垂直)。我怎样才能(垂直)居中?非常感谢你

5 个答案:

答案 0 :(得分:1)

在所有视图中删除android:gravity属性。

将文本视图的 android:layout_gravity 设置为 center_horizo​​ntal

gravity和layout_gravity之间存在差异。

android:gravity设置它所使用的视图内容的重力和android:layout gravity设置其父视图/布局的重力。

默认情况下,android:gravity设置为center,android:layout_gravity设置为left。

我已根据您的问题更改了代码w .r.t。

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/dashboard_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="@dimen/padding_left">
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="@style/TextAppearance.AppCompat.Display2"
        android:id="@+id/card_number"
        android:layout_gravity="center_horizontal"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="@style/TextAppearance.AppCompat.Display1"
        android:id="@+id/name_campaign"
        android:layout_gravity="center_horizontal"/>

    <View
        android:layout_width="5dp"
        android:layout_height="20dp"
        android:layout_alignWithParentIfMissing="false"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true"
        android:id="@+id/view_anchor"
        android:gravity="center_horizontal"/>

    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/btn_add"
        android:id="@+id/button_add"
        />

    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/btn_deduct"
        android:id="@+id/button_deduct"
        />

</LinearLayout>

答案 1 :(得分:0)

从以下位置更改textView:

android:layout_width="wrap_content"

android:layout_width="match_parent"

并添加

android:textAlignment="center"

答案 2 :(得分:0)

将TextView集allowed_domains = ["t13.cl"] 中的文本居中到android:layout_width

将Botton集match_parent内的文字居中置于android:gravity,如@Blackbelt所述

center

答案 3 :(得分:0)

使用layout_gravity标签代替textview上的重力标签

答案 4 :(得分:0)

将此行添加到两个textviews

android:layout_centerHorizontal="true"

这两行按钮

android:gravity="center"