为什么我的进度条没有垂直居中?

joh*_*nco 6 layout android view alignment

我有以下布局......

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:background="@drawable/bg_generic_portrait">
  <ListView android:id="@android:id/list"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:background="@drawable/issue_list_item_background_normal"
            android:listSelector="@drawable/issue_background_selector"
            android:divider="@drawable/separator"
    >
  </ListView>
  <ProgressBar
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_gravity="center"
    android:id="@+id/preloader"
    style="@android:style/Widget.ProgressBar.Large"/>

  <TextView android:id="@android:id/empty"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#FF0000"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

它看起来像这样...... http://i.stack.imgur.com/Ra5c6.png

我希望预加载器也能垂直居中,出了什么问题?

Mac*_*ine 12

不知何故,layout_gravity运行不正常.您需要做的是将progress_bar嵌套在linear_layout中,并将该布局的重力设置为居中,如下所示:

<LinearLayout android:orientation="vertical"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:gravity="center">
<ProgressBar
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:id="@+id/preloader"
          style="@android:style/Widget.ProgressBar.Large"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我不建议将引力设置为最顶部的线性布局,因为如果更改列表或添加内容,可能会发生有趣的事情.