Ответ 1
В макете xml для вашего progressBar установите android:layout_gravity
(вместо android:gravity
) на "center"
android:layout_gravity = "center"
Я использую следующий код, но мой индикатор выполнения не отображается в центре макета кадра. Я хочу, чтобы не дополнить свой прогресс. Может кто-нибудь объяснить? Он отлично работает, если я использую "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>
В макете xml для вашего progressBar установите android:layout_gravity
(вместо android:gravity
) на "center"
android:layout_gravity = "center"
Используйте
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
FrameLayout
не имеет android:gravity
. Вам нужно установить android:layout_gravity
на ProgressBar
.
<ProgressBar
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
***android:layout_gravity="center"*** />
добавьте эту строку в
<ProgressBar
android:layout_gravity="center" />
Просто измените свой макет как 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>
Рабочее решение с 2017 года
android:layout_gravity="center"
Начиная с 2018 года вам нужно установить атрибут ниже:
android:layout_centerInParent="true"
вы должны установить положение в пикселях, как в режиме frameelayout, различные компоненты перекрывают друг друга. Итак, вы можете попробовать его, установив пиксели в dip.