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

pie*_*fou 1 layout android

布局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>
Run Code Online (Sandbox Code Playgroud)

最终的布局是:

在此输入图像描述

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

ble*_*enm 6

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

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