Android:layout_gravity中心不居中

时间:2012-08-27 20:41:20

标签: android android-layout layout-gravity

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

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

布局-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定义了此组件内容的重力。我尝试了两种方式,包括center和center_horizo​​ntal。我还制作了标题TextView layout_width:wrap_content,并试图将其与layout_gravity对齐,但结果总是跟随(如果我将应用放在手机上也一样)

enter image description here

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

4 个答案:

答案 0 :(得分: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>

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

尝试

 center_vertical

 Use Relative Layout.

答案 3 :(得分:0)

<?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-将您的视图置于父级居中(在要居中的所有视图中使用)