в каждом фрагменте где нужна такая штука лежит focusable и clickable (чтоб клики по кнопкам не просачивались во время отправки) layout_loading во весь экран который я отображаю и скрываю, типа
viewModel.sendSomeData().observe(viewLifecycleOwner) {
when(it) {
LOADING -> layoutLoading.isVisible = true
FINISHED -> layoutLoading.isVisible = false
}
}
Ну и в xml фрагмента
<include
android:id="@+id/layout_loading"
layout="@layout/layout_loading"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
Проблема в том, что когда фрагмент не во весь экран активити (например с bottomNavigationView), внешние элементы остаются видны и по ним можно кликать. Можно конечно заколхозить такой лейаут в host activity и в фрагменте вызывать (requireActivity() as HostActivity).showLoading() но мне это не очень нравится
никто не делает экраны загрузок штоле?
Вроде как принято эффект шиммера впендюривать)
я как настоящий колхозник делаю это в активити если мне надо заблочить весь интерфейс на какое то время, если не надо блочить то юзаю внутри фрагмента прогресс какой нибудь. все это через абстракцию очень хорошо настраивается.... но опять таки, я колхозник тот еще) давайте подождем ответа от "Элиты")
Будь я элитой - обиделся б на кавычки (
Шиммер имеет очень ограниченную область применения. В лучшем случае подходит для списков. Шиммер врёт юзеру. Например, грузим список купонов на скидки. Шиммер красиво анимирует 5 элементов списка. Загрузка закончилась, пришел пустой список. Юзер: ну и где мои обещанные 5 купонов? В 99.9% проще и эффективнее использовать индикатор прогресса.
ну это со списками для ресайклера, там плюс минус понятно, а если "ван шот" дата для выпадающих списков например или вообще отправка/сохранение? без лока интерфейса не всегда получается
шиммер + прогресс = 100%) одно другому не мешает
а я думал как раз для списка надо
Шиммер врёт юзеру. Написал об этом выше.
Обсуждают сегодня