Сделать взаимодействие с пользователем неактивным, пока отображается индикатор выполнения - PullRequest
0 голосов
/ 17 июня 2020

В фрагменте диалогового окна, когда я использую индикатор выполнения (не диалоговое окно выполнения), я хочу выполнить задачу, а затем разрешить взаимодействие с пользователем. Этого можно добиться с помощью диалога выполнения, используя setCancelable (false), но как это сделать с помощью индикатора выполнения? (Так как функция getWindow () не работает внутри фрагмента диалога).

Заранее спасибо :)

Ответы [ 2 ]

0 голосов
/ 17 июня 2020

Вы можете просто добавить логический флаг isLoading и запретить все взаимодействия, пока этот флаг равен true, а после того, как работа будет выполнена, установите этот флаг на false

0 голосов
/ 17 июня 2020

Я бы не рекомендовал вам это делать, поскольку идея индикатора выполнения заключается в том, чтобы показать пользователю, что что-то происходит, но это не должно иметь ничего общего с тем фактом, что он может взаимодействовать с экраном. (Это одна из причин, по которой ProgressDialog устарел, чтобы не блокировать пользовательский интерфейс, когда что-то загружается).

Кроме того, отвечая на ваш вопрос, getWindow может быть вызван из действия, вы можете получить действие во фрагменте диалогового окна с помощью requireActivity (). getWindow () или getActicity (). getWindow () и соответствующим образом установите параметры, чтобы отключить действие пользователя.

...