фрагменты, стандартная ситуация. Некоторые фрагменты не должны показываться, если у них нет данных для показа. В голову пришла мысль, что фрагмент может сам себе ставить isVisible = false, если у него нет данных и наоборот. Насколько это правильный подход? Какие есть другие, более правильные
То есть мы навигируемся между фрагментами и получаем пустой экран? Это странно. Опишите как у вас навигация построена
не не не, я имею в виду, что у меня есть фрагмент/активити, внутри которого/ой внутри другие фрагменты. Эти вложенные фрагменты не должны быть видны пользователю, если фрагменты не показывают данные (в моем конкретном случае "если нет запросов на дружбу", тогда фрагмент с ресайклером потенциальных друзей не виден).
Фрагменты в смысле элементы списка что ли?
"большой" экран сверстан из фрагментов. Пусть будет элемент списка, обычный FragmentContainerView внутри СкроллВью
А почему не использовать RV для этого? 🤯
Тогда это наверное вполне себе уместный способ
Ох, странное решение. Обычно используют ресайклер если элементов потенциально много, и в нем нормальные лэйауты вместо фрагментов. Первое по причине того что скроллвью ломается если накидать туда содержимого больше примерно 5 экранов. Ну и тогда уж не Visible а Gone, на корневой лэйоут фрагмента. Иначе будет пустое место в списке
Странное решение, что экран разобран на логические блоки в виде фрагментов?
Да, это не то что странное, это решение лишено смысла Если я правильно понял, речь идет про "несколько фрагментов на одном экране"
Да. Не очень странное если фрагментов в скроллвью не больше 3-5. Добавьте 999 - получите OOM, или ошибку граф.контроллера о недопустимом размере канваса + тормоза дикие
Да, у меня случай, что есть 3 фрагмента внутри экрана (тоже фрагмента, но это не важно). У каждого из трёх своя задача отобразить отдельные списки: члены команды поддержки приложения, запросы в друзья и, собственно, уже друзья. Когда какой либо из списков пустой, то фрагмент не должен показываться. Если бы там было нужно просто показать, но у всех вьюшек в ресайклерах ещё свои кнопки, которые нужно обрабатывать. В одном фрагменте+вм это очень нагружено, имхо. Поэтому делю логически разные части на фрагменты (они ж для этого и созданы, нет?), у меня их там не много, ООМ не ловлю.
У меня просто экран, 100500 фрагментов нет
Делается рецайклер вертикальный или просто скролл как угодно. Вместо фрагментов делаешь кастомную вью ( хоть с другим рецайклером). Каждая кастомная вью работает со своей vm. Вот тебе и разделение и обработка своя. Не надо фрагменты так использовать
Фрагменты проще для понимания, чем ресайклер, может в этом дело
А ловить потом доп геморой лучше? Микроскопом тоже можно гвозди забивать, но есть нюанс
Ну, с ними нужно разбираться, писать адаптер с холдером и несколькими неочевидными для новичков функциями. 🤷♂
Можно даже без кастом вью, а просто абстракцию создать над разными типами данных, и проверять в адаптере в методе онКриейтВьюХолдер, и в зависимости от того, какой класс в списке биндить разные лэйауты
Обсуждают сегодня