ProgressBar не отображается после второго нажатия кнопки, которая обеспечивает ответ на вызов API. ⇐ 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. Как такое может быть, что после первого раза оно появилось, а потом уже не появляется.
У меня есть приложение, в котором пользователь предоставляет некоторые данные. После проверки правильности предоставленных данных приложение должно выполнить вызов 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. Как такое может быть, что после первого раза оно появилось, а потом уже не появляется.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Элемент кнопки нажатия Selenium не доступен для нажатия в данный момент Ошибка
Anonymous » » в форуме Python - 0 Ответы
- 50 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Элемент кнопки нажатия Selenium не доступен для нажатия в данный момент Ошибка
Anonymous » » в форуме Python - 0 Ответы
- 55 Просмотры
-
Последнее сообщение Anonymous
-