4

我有一个问题,这可能很愚蠢,但我无法弄清楚为什么这不起作用。

基本上,我的活动中有一个标题。此标题应居中。

布局-XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

<TextView 
    style="@style/TextHeader"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/define"
    />
</LinearLayout>

styles.xml 中的定义

<style name="TextHeader">
    <item name="android:textSize">20dp</item>
    <item name="android:paddingTop">15dp</item>
    <item name="android:layout_gravity">center</item>
    <item name="android:paddingBottom">15dp</item>
</style>

据我了解,layout_gravity定义了组件本身的重力,同时gravity定义了该组件内容的重力。我尝试了两种方式,包括centercenter_horizo​​ntal 和 center_horizo​​ntal。我还制作了标题 TextViewlayout_width:wrap_content并尝试将其居中layout_gravity,但结果总是如下(如果我将应用程序放在手机上也是如此)

在此处输入图像描述

为什么会这样?我该如何解决?

4

4 回答 4

8

有几种不同的解决方案,这是一个:

<TextView
    android:id="@+id/text"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:text="@string/define" />

这是另一个:

<RelativeLayout .../>

    <TextView
        ...
        android:centerInParent="true" />

</RelativeLayout>

您可以将样式属性调整为您选择的任何方法。

于 2012-08-27T20:50:38.643 回答
1
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    android:orientation="vertical" >

android:gravity - 在视图中居中(在布局中使用它)

android:layout_gravity -在父视图中居中(在所有要居中的视图中使用它)

于 2019-04-18T16:45:01.680 回答
0

尝试使用"center_horizontal"layout_width:"fill_parent"

于 2012-08-27T20:47:22.537 回答
0

尝试

 center_vertical

或者

 Use Relative Layout.
于 2012-08-27T20:48:26.827 回答