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

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

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

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

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

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

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

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

19 ответов

10 просмотров

А если в 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
Спасибо, вроде понял про что ты. Ну хз, мне кажетс...

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

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

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

Типа вызывать GetParent и проверять на соответствие GetModuleHandle?
The Bird of Hermes
67
Do any of you guys have interesting projects one could join? I'm a Middle Full-Stack developer (JS/TS, React & Node)
Lev Shapiro
40
$res = json_decode($наша строка из респонса); $res1 = array_map(fn($o) => $o->name, $res->breadcrumbs[0]->entities); Как такое будет на Хаскеле?.. В начале весь джейсон, в ко...
Хаскель Моисеевич Гопник
27
В чем сила брат, в NASM или FASM?
Isaac Kleiner
18
Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
11
Хтось використовував Vapor на Windows?
Jaroshevskii
15
А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
Тут кста кто-нибудь NeoVim использует?
Simple Sorcerer
13
Оба варианта в целом подходят, но скорее создание конфликтной ситуации (на пустой основе). В прошлый раз он сказал мне про ESP32, я забыл про этот микроконтроллер, ошибся, я п...
КТ315
4
Карта сайта