2011-09-06 135 views
115

我知道这听起来很容易。我需要将文本放在中间,但是当文本太长时,它需要放在下面,但仍然在我的xml中心对齐。将文本中心与android对齐

这里是我的代码:

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/showdescriptioncontenttitle" 
    android:paddingTop="10dp" 
    android:paddingBottom="10dp" 
    android:layout_centerHorizontal="true" 
> 
    <TextView 
     android:id="@+id/showdescriptiontitle" 
     android:text="Title" 
     android:textSize="35dp" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
    /> 
</LinearLayout> 

我把paddingTop和底部,因为我需要一些空间。 PS:我的代码更大;它在RelativeLayout中。

回答

311

还设置android:gravity参数TextViewcenter

为了测试不同布局参数的影响,我建议为每个元素使用不同的背景颜色,以便您可以看到布局如何随着重力,layout_gravity或其他参数而改变。

+0

谢谢你,它的工作,只是需要一些时间来有效的回答! – Tsunaze

+1

我看到android:layout_centerHorizo​​ntal =“true”不再需要了.. – Tsunaze

+0

是的,那是真的。但我认为只有当TextView有多行时才行。因为只有1个不是全行的文本,TextView不会横向填充布局 –

4

您可以使用以下方法:

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/showdescriptioncontenttitle" 
    android:paddingTop="10dp" 
    android:paddingBottom="10dp"> 

<TextView 
     android:id="@+id/textview1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:text="Your text" 
     android:typeface="serif" /> 
</LinearLayout> 

布局需要是相对的“中心”属性被使用。

14

用这种方式在XML

<TextView 
     android:id="@+id/myText" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="Time is precious, so love now." 
     android:gravity="center" 
     android:textSize="30dp" 
     android:textColor="#fff" 
     /> 
4

添加在你的TextView会做的伎俩android:gravity="center"(是父布局Relative/Linear)!

此外,你应该避免使用字体大小的dp。改为使用sp。

1

附加layout_gravity并用的重力中心值在TextView的

<TextView 
    android:text="welcome text" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_gravity="center" 
    android:gravity="center" 
    />