I have the following layout…
<?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>
And it looks like this…https://i.stack.imgur.com/Ra5c6.png
I want the preloader to be centered vertically too, what is wrong?
Somehow the layout_gravity does not work well.
What you need to do is nest the progress_bar in a linear_layout and set the gravity of that layout to center, like this:
I do not suggest setting the gravity to the topmost linear layout because you could have funny things happening if you change the list or add something.