ProgressBar не отображается после второго нажатия кнопки, которая обеспечивает ответ на вызов API. ⇐ Android

Форум для тех, кто программирует под Android
Гость
ProgressBar не отображается после второго нажатия кнопки, которая обеспечивает ответ на вызов API.

Сообщение Гость »


У меня есть приложение, в котором пользователь предоставляет некоторые данные. После проверки правильности предоставленных данных приложение должно выполнить вызов API, а затем отобразить ответ. Пользователь может сделать это несколько раз.

Чтобы быть более конкретным, предположим, что у нас есть текст редактирования и кнопка. Пользователь предоставляет некоторые данные в тексте редактирования, а затем нажимает кнопку . Если данные, предоставленные в EditText, действительны, выполните вызов API с использованием предоставленных данных и отобразите их в TextView.

ProgressBar отображается с помощью setOnClickListener в кнопке. После вызова API, наблюдения за LiveData из ViewModel и отображения его в TextView, для ProgressBar устанавливается значение НЕВИДИМЫЙ. До сих пор все работает как задумано. Теперь, когда пользователь решит незначительно изменить данные и выполнить еще один вызов API, ProgressBar не будет отображаться.

Кнопка

myBinding.apiCall.setOnClickListener { myBinding.TestProgressBar.visibility = Представление.VISIBLE TestJob.start() } Работа

Private val TestJob: Работа get() = viewLifecycleOwner.lifecycleScope.launch(start = CoroutineStart.LAZY) { ТестVM.MakeApiCall() TestVM.ApiResponse.observe(viewLifecycleOwner, Observer { apiresult -> когда (apiresult) { это TestWrapper.Success -> { myBinding.MyTextView.text = String.format( getString(R.string.testString), это ) myBinding.TestProgressBar.visibility = View.INVISIBLE } это TestWrapper.Error -> {} } }) } Я попытался сделать задержку в Observable, и появился ProgressBar. Как такое может быть, что после первого раза оно появилось, а потом уже не появляется.

Вернуться в «Android»