169 похожих чатов

Привет, подскажите лучшие решения, которые вы знаете в силу своего

опыта, для отображения вёрстки при ошибке с кнопкой "Повторить" для фрагмента.

Пока что, самый удобный и оптимальный вариант это в layout.xml использовать include и скрывать/показывать вёрстку, а автоматизировать можно связав BaseFragment с BaseViewModel.

Во viewModel держим и управляем LiveData со стейтами экрана, там же делаем функцию fetch() для выполнения действия по нажатию кнопки "Повторить" и реализуем эту функцию в рабочем ViewModel.

А в BaseFragment в конструктор передаём layout и с помощью findViewById() пытаемся найти include. Если он есть, то будем работать с ним, если нет, то ничего не делаем. На стейты подписываемся тут же, в BaseFragment.

Таким образом всё автоматизировано, только в каждый layout придётся добавлять include.

Хорошее ли это решение и какие лучше, подскажите, пожалуйста?

19 ответов

20 просмотров

А если в layout активити сунуть?

Dialog Fragment позволит избавиться от include и от гемора с контролем UI

Dmitry-Aleksandrovich Автор вопроса
Kirill
Dialog Fragment позволит избавиться от include и о...

Он будет рисоваться поверх фрагмента во весь экран и его нельзя будет закрыть свайпом?

Dmitry-Aleksandrovich Автор вопроса
Kirill
Да

Спасибо. Но бывают случаи, когда надо отобразить эту вёрстку под тулбаром, с DialogFragment, как я понимаю, так не получится сделать

Dmitry Aleksandrovich
Спасибо. Но бывают случаи, когда надо отобразить э...

DialogFragment отображается как и обычный диалог, на часть экрана, затемняя то, что под ним

Так вродеж лайвдата уже не модно стильно молодежно?

Dmitry-Aleksandrovich Автор вопроса
Печенье
Так вродеж лайвдата уже не модно стильно молодежно...

Можно StateFlow, просто особо сути не меняет, поэтому я написал про лайвдату

Dmitry Aleksandrovich
Можно StateFlow, просто особо сути не меняет, поэт...

Да вроде норм если тебе прям по все аппке размазывать надо

А не проще ли просто кастомный компонент создать и его и добавлять вместо include? С необходимыми методами (типо fetch)

Dmitry-Aleksandrovich Автор вопроса
𝒜𝓃𝒹𝓇𝑒𝒾 𝒦𝒽𝓇𝑜𝓂𝑜𝓋 (Andrei Khromov)
А не проще ли просто кастомный компонент создать и...

А какой от этого профит? Тут всё связано под капотом в BaseFragment и BaseViewModel, а в кастом вью придется передавать стейт

Так и там можно связать. Просто в наследнике указываешь свою view, а в базовом объявляешь и вызываешь то что хочешь, если она не null. Профит наверное в большем удобстве и чуть большей гибкости

Dmitry-Aleksandrovich Автор вопроса
𝒜𝓃𝒹𝓇𝑒𝒾 𝒦𝒽𝓇𝑜𝓂𝑜𝓋 (Andrei Khromov)
Так и там можно связать. Просто в наследнике указы...

Спасибо, вроде понял про что ты. Ну хз, мне кажется шило на мыло получается

Dmitry Aleksandrovich
Спасибо, вроде понял про что ты. Ну хз, мне кажетс...

По дереву лишний раз не проходишься, экономишь драгоценные ресурсы)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта