Как разместить объект ProgressBar внутри элемента управления ListView?


У меня есть ListView, который заполняется в AsyncTask. Во время выполнения ListView становится невидимым, панель прогресса отображается в центре горизонтали, которая исчезает после завершения AsyncTask, и ListView отображается снова. Теперь это выглядит так:

Введите описание изображения здесь

Но мне нужно, чтобы ProgressBar отображался внутри ListView и центрировался как по горизонтали, так и по вертикали:

Введите описание изображения здесь

Вот моя разметка макета:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:layout_weight="1">

    <LinearLayout
            android:id="@+id/LinearHeaderProgress"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:gravity="center"
            android:orientation="vertical"
            android:visibility="gone">

        <ProgressBar
                android:id="@+id/HeaderProgress"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
        </ProgressBar>
    </LinearLayout>

    <ListView
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:id="@+id/listView"/>
</LinearLayout>

Как я могу достичь вот это?

Спасибо.

1 4

1 ответ:

Попробуйте использовать RelativeLayout вот так,

        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:orientation="vertical" >

        <ProgressBar
            android:id="@+id/HeaderProgress"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true" >
        </ProgressBar>

        <ListView
            android:id="@+id/listView"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

    </RelativeLayout>