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

Друзья, подскажите, пожалуйста, как правильно будет сделать Есть экран, на котором

фрагменты, стандартная ситуация. Некоторые фрагменты не должны показываться, если у них нет данных для показа. В голову пришла мысль, что фрагмент может сам себе ставить isVisible = false, если у него нет данных и наоборот. Насколько это правильный подход? Какие есть другие, более правильные

17 ответов

5 просмотров

То есть мы навигируемся между фрагментами и получаем пустой экран? Это странно. Опишите как у вас навигация построена

Savva-Mirzoyan Автор вопроса
Сергей П.
То есть мы навигируемся между фрагментами и получа...

не не не, я имею в виду, что у меня есть фрагмент/активити, внутри которого/ой внутри другие фрагменты. Эти вложенные фрагменты не должны быть видны пользователю, если фрагменты не показывают данные (в моем конкретном случае "если нет запросов на дружбу", тогда фрагмент с ресайклером потенциальных друзей не виден).

Фрагменты в смысле элементы списка что ли?

Savva-Mirzoyan Автор вопроса
Din-R Islamov
Фрагменты в смысле элементы списка что ли?

"большой" экран сверстан из фрагментов. Пусть будет элемент списка, обычный FragmentContainerView внутри СкроллВью

Тогда это наверное вполне себе уместный способ

Ох, странное решение. Обычно используют ресайклер если элементов потенциально много, и в нем нормальные лэйауты вместо фрагментов. Первое по причине того что скроллвью ломается если накидать туда содержимого больше примерно 5 экранов. Ну и тогда уж не Visible а Gone, на корневой лэйоут фрагмента. Иначе будет пустое место в списке

Savva-Mirzoyan Автор вопроса
Сергей П.
Ох, странное решение. Обычно используют ресайклер ...

Странное решение, что экран разобран на логические блоки в виде фрагментов?

Savva Mirzoyan
Странное решение, что экран разобран на логические...

Да, это не то что странное, это решение лишено смысла Если я правильно понял, речь идет про "несколько фрагментов на одном экране"

Savva Mirzoyan
Странное решение, что экран разобран на логические...

Да. Не очень странное если фрагментов в скроллвью не больше 3-5. Добавьте 999 - получите OOM, или ошибку граф.контроллера о недопустимом размере канваса + тормоза дикие

Savva-Mirzoyan Автор вопроса
Pavel Erokhin
Да, это не то что странное, это решение лишено смы...

Да, у меня случай, что есть 3 фрагмента внутри экрана (тоже фрагмента, но это не важно). У каждого из трёх своя задача отобразить отдельные списки: члены команды поддержки приложения, запросы в друзья и, собственно, уже друзья. Когда какой либо из списков пустой, то фрагмент не должен показываться. Если бы там было нужно просто показать, но у всех вьюшек в ресайклерах ещё свои кнопки, которые нужно обрабатывать. В одном фрагменте+вм это очень нагружено, имхо. Поэтому делю логически разные части на фрагменты (они ж для этого и созданы, нет?), у меня их там не много, ООМ не ловлю.

Savva-Mirzoyan Автор вопроса

Делается рецайклер вертикальный или просто скролл как угодно. Вместо фрагментов делаешь кастомную вью ( хоть с другим рецайклером). Каждая кастомная вью работает со своей vm. Вот тебе и разделение и обработка своя. Не надо фрагменты так использовать

Artemiy Terekhov
Делается рецайклер вертикальный или просто скролл ...

Фрагменты проще для понимания, чем ресайклер, может в этом дело

Капитан Шимпанзе
Фрагменты проще для понимания, чем ресайклер, може...

А ловить потом доп геморой лучше? Микроскопом тоже можно гвозди забивать, но есть нюанс

Artemiy Terekhov
А ловить потом доп геморой лучше? Микроскопом тоже...

Ну, с ними нужно разбираться, писать адаптер с холдером и несколькими неочевидными для новичков функциями. 🤷‍♂

Artemiy Terekhov
Делается рецайклер вертикальный или просто скролл ...

Можно даже без кастом вью, а просто абстракцию создать над разными типами данных, и проверять в адаптере в методе онКриейтВьюХолдер, и в зависимости от того, какой класс в списке биндить разные лэйауты

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

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

@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Заметил в ghci 9.4.8: > :t (<*>) @((->)_) (<*>) @((->)_) :: (w -> (a -> b)) -> (w -> a) -> w -> b Разве не должно (w -> (a -> b)) быть записано как (w -> a -> b)? Это баг, ил...
Михаил
13
Any electron dev here?
Sayanth Tezro
12
Подобного рода ;Следующие три строки это директивы ассемблера, ;которые можно не задавать, т.к.работаем в Visual Studio. ;Символ ";" - это начало однострочного комментария ...
Егор Анелькин
3
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
так это может кто что знает или использует что-то как макбук только не макбук? на 13…14 дюймов
Michael
9
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
Кто-нибудь знает почему SPM клонирует репо целиком? Некоторые репы просто огромные, как та же swift-syntax которая нужна для использования макросов. Сначала подумал, что это...
iMike
6
Карта сайта