Как установить ProgressBar в центре экрана в макете кадра? - PullRequest
23 голосов
/ 30 ноября 2010

Я использую следующий код, но мой индикатор выполнения не отображается в центре макета кадра. Я хочу избежать заполнения моего индикатора выполнения. Может кто-нибудь объяснить, пожалуйста? Это прекрасно работает, если я использую "Linear Layout"

<?xml version="1.0" encoding="UTF-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_vertical|center_horizontal">

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

    <ImageView android:id="@+id/gallery_img"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" />

 </FrameLayout>

Ответы [ 9 ]

40 голосов
/ 17 января 2012

Использование

android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_centerInParent="true"

Пример:

 <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content"
     android:layout_centerHorizontal="true"
     android:layout_centerVertical="true"
     android:layout_centerInParent="true" />

android:gravity атрибут не поддерживается ProgressBar

37 голосов
/ 30 ноября 2010

В макете XML для вашего индикатора выполнения установите android:layout_gravity (вместо android:gravity) на "center"

android:layout_gravity = "center"
13 голосов
/ 20 марта 2014

FrameLayout не имеет android:gravity.Вам нужно установить android:layout_gravity на ProgressBar.

9 голосов
/ 01 марта 2015
<ProgressBar
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        ***android:layout_gravity="center"*** /> 

добавить эту строку в

 <ProgressBar
              android:layout_gravity="center" />
3 голосов
/ 23 октября 2014

Просто измените свой макет на RelativeLayout и добавьте android: layout_centerInParent = "true" на ваш ProgressBar.

<ProgressBar
android:id="@+id/progBar"
android:indeterminateDrawable="@drawable/my_progress_indeterminate"
android:layout_height="50dp" 
android:layout_centerInParent="true"
android:layout_width="50dp">
</ProgressBar>
1 голос
/ 14 января 2018

Начиная с 2018 года, вам необходимо установить следующий атрибут:

android:layout_centerInParent="true"
0 голосов
/ 02 октября 2018
<ProgressBar
    android:id="@+id/progressBar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_centerInParent="true"
    />
0 голосов
/ 31 июля 2017

Рабочий раствор по состоянию на 2017 год

android:layout_gravity="center"
0 голосов
/ 30 ноября 2010

Вы должны установить положение в пикселях, так как в структуре кадра различные компоненты перекрывают друг друга. Итак, вы можете попробовать это, установив пиксели в dip.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...