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.sstatic.net/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:
<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>
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.