2013-08-13 2 views
0

Мой код показывает пространство сверху списка (см. Левое изображение). Если удалить android:gravity="center" тогда он будет правильно показать (см правое изображение)как показать прогресс бар центр экрана

enter image description here enter image description here

Но ProgressBar не отображается на центре экрана, она отображается в левой части экрана.

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center" 
    android:orientation="vertical"> 

    <ListView 
     android:id="@+id/listCategory2" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:fadeScrollbars="true" 
     android:fastScrollEnabled="true" 
     android:divider="@color/background" 
     android:dividerHeight="1dp" 
     android:visibility="gone" 
     android:background="@drawable/border9" 
     android:listSelector="@drawable/listview_selector" /> 

    <ProgressBar 
     android:id="@+id/prgLoading" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     style="@android:style/Widget.ProgressBar.Inverse" 
     android:layout_centerInParent="true" /> 

    <TextView 
     android:id="@+id/txtAlert" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/alert" 
     android:textColor="@color/text" 
     android:textSize="14sp" 
     android:layout_centerInParent="true" 
     android:visibility="gone" /> 

     </LinearLayout> 
+1

увидеть это http://imgur.com/WKRZHAw помочь мне, как я отрегулирует это? удалите пространство сверху списка, но индикатор выполнения по-прежнему показывает центр экрана, помогите мне, пожалуйста, – user2659385

+0

Используйте 'RelativeLayout' – Geros

ответ

5

Родитель макет, который вы взяли это LinearLayout и метод в вашем XML андроида: layout_centerInParent =» true "работает для RelativeLayout. Вам нужно изменить его на android: layout_gravity = "center". Вместо этого вы можете изменить родительский макет на RelativeLayout.

+0

эта работа для меня thnx – user2659385

1

Сделать стартовой RelativeLayout, а не LinearLayout, и ListView добавить android:layout_alignParentTop="true" и прогресс бар добавить android:layout_centerInParent="true"

+0

эту работу thnx !!!!!!! – user2659385

+0

добро пожаловать! –

2

Вы можете использовать <FrameLayout>, это действительно хорошо для вас.

И установить прогрессбар (нужно match_parent для layout_width и layout_height) как:

<ProgressBar 
    android:id="@+id/prgLoading" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    style="@android:style/Widget.ProgressBar.Inverse" 
    android:layout_centerInParent="true"/> 

Надежда помочь,

+0

Атрибут 'android: layout_centerInParent =" true "' не влияет на 'FrameLayout' - вы, вероятно, имели в виду' RelativeLayout'. –

+1

Я знал. Но FrameLayout может накладываться на весь экран. Итак, когда установлено layout_gravity = center для панели прогресса в FrameLayout. Он должен быть центром устройства. –

+0

Настройка ширины и высоты в соответствии с родительским будет делать центрирование бесполезным, не так ли? Я думаю, что центрирование полезно только в том случае, если оно меньше родителя. –

Смежные вопросы