Android – LinearLayout中的中心Textview

我想在一个LinearLayoutTextView居中,它是垂直居中,但不是垂直居中。

下面是我的代码

  <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> 

最后,我希望它能够垂直居中在Linearlayout的左边,如果有人能想出如何做到这一点,那就太棒了。

谢谢!

Solutions Collecting From Web of "Android – LinearLayout中的中心Textview"

你有重力和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> 

为了澄清:

android:layout_gravity="center_horizontal"将使LinearLayout水平居中在其父项中。

android:gravity="center_vertical|left"将把TextView(和任何其他的孩子)垂直居中在LinearLayout中,并将其alignment到左边。

尝试改变你的gravity

 android:layout_gravity="center_vertical" 

gravity是用来放置你的View内的内容和layout_gravity是用来定位在其父View

但是我很困惑,“最后我希望它垂直居中在LinearLayout的左边”。 但从听起来,我的答案应该给你你想要的。

另外,除非有很好的理由,否则你不需要为一个孩子使用一个LinearLayout或者任何父母。 如果你能更好地解释你想要什么,甚至是一个截图,那么我们可以帮助一个更好的解决scheme。

这会给你你想要的效果

 <LinearLayout android:layout_width="320dp" <!-- removed orientation (horizontal by default) --> 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:layout_gravity="center_vertical" <!-- changed gravity here --> android:layout_width="fill_parent" android:layout_height="wrap_content" <!-- change to wrap_content --> android:id="@+id/tvExVin" /> </LinearLayout> 
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center_horizontal|center_vertical" android:gravity="center_vertical|center_horizontal" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="AppLock Demo" android:textSize="30dp" /> </LinearLayout>