android:layout_gravity会将子视图垂直放在中心但不是水平放置

时间:2011-09-07 03:29:44

标签: android layout

布局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="wrap_content"
    android:background="@color/translucenter_dark" >
    <LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="200dip"
    >
    <ProgressBar android:id="@+id/progressBar1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center"

    ></ProgressBar>
    </LinearLayout>

</LinearLayout>

最终的布局是:

enter image description here

为什么progressBar没有垂直和水平放置在中心。它是一个功能还是一个bug:)

1 个答案:

答案 0 :(得分:6)

您可以给出围绕进度条android:gravity="center"的线性布局。 这将使进度条居中。

似乎进度条使用ViewGroup.LayoutParams。此类不支持layout_gravity,例如LinearLayout.LayoutParams。因此,您需要使用父线性布局的gravity属性。这是android中gravity的一个非常好的解释。