Как изменить позицию диалога прогресса? - PullRequest
33 голосов
/ 03 августа 2010

Я занимаюсь разработкой приложения для Android, и мне нужно знать, как изменить положение диалогового окна прогресса.Мне нужно, чтобы он располагался внизу экрана, а не в центре, как по умолчанию.

Ответы [ 4 ]

79 голосов
/ 03 августа 2010

Вы можете позвонить ProgressDialog#getWindow#setGravity(...), чтобы изменить гравитацию.

Итак:

ProgressDialog dialog = ProgressDialog.show(AContext, "Test", "On the bottom");
                dialog.getWindow().setGravity(Gravity.BOTTOM);
16 голосов
/ 24 декабря 2012

В дополнение к другим ответам вы можете использовать LayoutParams.x или LayoutParams.y, чтобы обеспечить смещение от заданного края. Например:

progressDialog = ProgressDialog.show(this, "Title","Text");

progressDialog.getWindow().setGravity(Gravity.TOP);
LayoutParams params = progressDialog.getWindow().getAttributes();
params.y = 100;
progressDialog.getWindow().setAttributes(params);

И вам полезно знать о LayoutParams.y:

Y позиция для этого окна. С гравитацией по умолчанию это игнорируется. При использовании TOP или BOTTOM он обеспечивает смещение от заданного края.

и о LayoutParams.x:

X позиция для этого окна. С гравитацией по умолчанию это игнорируется. При использовании LEFT или START или RIGHT или END он обеспечивает смещение от заданное ребро.

3 голосов
/ 30 ноября 2015

Если вы используете любую пользовательскую тему для ProgressDialog, то вы можете добавить приведенный ниже тег xml к стилю в файле style.xml пользовательской темы

<item name="android:layout_gravity">bottom</item>

1 голос
/ 03 августа 2010

Добавление android: gravity = "bottom" к самому внешнему XML-элементу в макете может сделать это. Не уверен, перемещает ли это диалоговое окно или его содержимое.

...