【问题标题】:How do You Center a TextView in Layout?如何在布局中将 TextView 居中?
【发布时间】:2011-02-16 13:27:03
【问题描述】:

我有一个复杂的布局,其中一部分具有一个以标签为中心的值,在值的两侧都有 + 和 - 按钮。我希望值在按钮之间居中,无论是“1”还是“99”。当它是一个像“99”这样的两位数字时看起来不错,但当它是一个数字时,数字是左对齐的。如何正确地居中该值?

这是我的布局中执行此操作的部分:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@id/runway_label"
    android:layout_centerHorizontal="true"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/dec_runway_button"
        android:src="@drawable/minus_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"/>

    <TextView
        android:id="@+id/runway_value"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#FFFFFF"
        android:textStyle="bold"
        android:textSize="40.0sp"
        android:minWidth="50sp"
        android:layout_centerInParent="true"
        android:layout_gravity="center"
        android:shadowColor="#333333"
        android:shadowDx="2.0"
        android:shadowDy="2.0"
        android:shadowRadius="3.0" />

    <ImageView
        android:id="@+id/inc_runway_button"
        android:src="@drawable/plus_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"/>

</LinearLayout>

【问题讨论】:

    标签: android layout center textview


    【解决方案1】:

    听起来您想在 TextView 中居中文本,而不是在布局中将 TextView 居中。

    您已经明确设置了minWidthTextView,这很好。您是否尝试过将android:gravity="center_horizontal" 用于TextView?不是layout_gravity,它是父级中TextView 的重力,在本例中为LinearLayout

    【讨论】:

      【解决方案2】:

      这是最终对我有用的方法:

              <RelativeLayout android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_alignParentBottom="true"
              android:layout_centerHorizontal="true">
              <TextView android:id="@+id/runway_label"
                  android:layout_width="wrap_content" android:layout_height="wrap_content"
                  android:layout_centerHorizontal="true"
                  android:layout_alignParentBottom="true" android:gravity="center_horizontal"
                  android:minWidth="110sp" android:textColor="#66CCFF"
                  android:textStyle="bold" android:textSize="15sp" android:text="@string/runway_label" />
              <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_above="@id/runway_label"
                  android:layout_centerHorizontal="true"
                  android:orientation="horizontal">
                  <ImageView android:id="@+id/dec_runway_button" android:src="@drawable/minus_button"
                      android:layout_width="wrap_content" android:layout_height="wrap_content"
                      android:layout_gravity="center_vertical"/>
                  <TextView android:id="@+id/runway_value"
                      android:layout_width="wrap_content" android:layout_height="wrap_content"
                      android:textColor="#FFFFFF"
                      android:textStyle="bold" android:textSize="40.0sp"
                      android:minWidth="50sp"
                      android:layout_centerInParent="true"
                      android:layout_gravity="center"
                      android:shadowColor="#333333" android:shadowDx="2.0"
                      android:shadowDy="2.0" android:shadowRadius="3.0" />
                  <ImageView android:id="@+id/inc_runway_button" android:src="@drawable/plus_button"
                      android:layout_width="wrap_content" android:layout_height="wrap_content"
                      android:layout_gravity="center_vertical"/>
              </LinearLayout>
          </RelativeLayout>
      

      【讨论】:

        【解决方案3】:

        如果android:layout_gravity="center_horizontal" 不起作用,请尝试:

                android:layout_gravity="center_horizontal"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"
        

        【讨论】:

          【解决方案4】:

          只需使用下面的线......它可以很好地将您的TextView 对齐在中心。

          android:layout_gravity="center_horizontal"

          例子..

          <TextView
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="My Text View"
              android:layout_gravity="center_horizontal"
              android:textSize="28sp"/>
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-04-10
            • 2014-07-17
            • 1970-01-01
            • 1970-01-01
            • 2015-02-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多