Android - LinearLayout中的中心Textview

use*_*786 19 xml android gravity textview

我试图居中TextViewLinearLayout,它是horizo​​ntaly而不是垂直居中.

下面是我的代码

 <LinearLayout
        android:orientation="vertical"
        android:layout_width="320dp"
        android:layout_height="50dp"
        android:background="@drawable/rectblack"
        android:layout_marginTop="10dp"
        android:layout_gravity="center"
        android:minWidth="25px"
        android:minHeight="25px">
        <TextView
            android:text="Explode a Vin"
            android:gravity="center"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:id="@+id/tvExVin" />
    </LinearLayout>
Run Code Online (Sandbox Code Playgroud)

最后,我希望它垂直居中于左边Linearlayout,如果有人能弄明白怎么做,那就太好了.

谢谢!

inv*_*igo 45

你有重力和layout_gravity反转.您可以在重力属性上使用"|"分隔多个值.试试这个:

 <LinearLayout
        android:orientation="vertical"
        android:layout_width="320dp"
        android:layout_height="50dp"
        android:background="@drawable/rectblack"
        android:layout_marginTop="10dp"
        android:layout_gravity="center_horizontal"
        android:gravity="center_vertical|left"
        android:minWidth="25px"
        android:minHeight="25px">
        <TextView
            android:text="Explode a Vin"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/tvExVin" />
    </LinearLayout>
Run Code Online (Sandbox Code Playgroud)

为了澄清:

android:layout_gravity="center_horizontal" 将LinearLayout水平居中于其父级.

android:gravity="center_vertical|left" 将TextView(和任何其他子项)垂直居中在LinearLayout内并将其对齐到左侧.

  • 快速说明:Android Studio建议在重力上使用"start"而不是"left"以允许从右到左的语言环境. (2认同)