Как установить диалог прогресса на максимальное значение между - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть диалоговое окно прогресса, для заполнения которого требуется 3 минуты.

Если я получаю ответ от сервера раньше, я хочу заполнить прогресс до 100%, а затем отключить его.

Это мой код, но он не заполняет индикатор выполнения до 100%.

  progressBar.setProgress(100);
  progressBar.cancel();
  progressBarLayout.setVisibility(View.GONE)

У меня есть отдельная раскладка для progress dialog, которую я отключаю при установке progressBar to 100.Может быть, поэтому он не отображает диалоговое окно прогресса.

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Ваш код заполняет его до 100%, но сразу заставляет его исчезнуть, следовательно, вы его не видите.Попробуйте добавить код о том, чтобы сделать вашу панель невидимой в исполняемом файле, который запускается только после получения подтверждения от сервера

Runnable r = new Runnable() {
        @Override
        public void run() {
            progressBarLayout.setVisibility(View.GONE)
        }
    }

, а затем создайте обработчик для запуска ypur:

Handler handler = new Handler();

Когдавы получите ответ от сервера и скажете обработчику подождать x секунд и запустить runnable

handler.postDelayed(r, 2000); //here it waits for 2 seconds (2000 mills)
0 голосов
/ 28 ноября 2018

Здесь может быть проблема:

Индикатор progressBar имеет метод setMax.Так, если ваш максимум установлен на 2 (например), если вы используете progressBar.setProgress(1);, он увеличится до 50%.

Если вы хотите всегда заполнять его полностью, возможно, используя что-то вроде:

progressBar.setProgress(progressBar.getMax());

Возможная проблема: Я не уверен, что вам следует изменить это в UIThread, потому что вы касаетесь интерфейса, я бы порекомендовал проверить это.

Надеюсь, это поможет.

...