поддерживаются и вместо них bindable stacklayout надо?
Листвью в листвью?
Да. Листвью/коллекшнвью в коллекшнвью нельзя, я попробовал. Листвью/коллекшнвью в листвью не тестил
Можно, но не нужно Даже в нативе когда делаешь, больше гемора получаешь Сейчас пришлось страницу переписать, где вкладывал ресайклер в ресайклер
Тогда у меня вопрос возникает, зачем листвью и коллекшнвью, если есть биндабл стаклэйоут/грид? Ради selectionmode?
биндабл - это стеклайут с элементами а листвью и коллекшн - под ними нативные листы, там всякие оптимизации приминяются
BindableStackLayout справедлив для каких-то маленьких перечислений. Список тегов каких нибудь на ячейке. А списки - это нативные списки, которые внутри себя переисеользуют ячейки и следят за памятью, реордером коллекции и много чего ещё, для того чтобы приложение не завершилось потому что жрет оперативки как не в себя.
Входные данные: список с 500 элементов. На екране вмещается 15 элементов. Нужно отобразить элементы в списке. ListView/CollectionView - создает 15-40 элементов View-шек и переиспользует их при скролле. BindableLayout - сразу создает 500 элементов View-шек (или пытается создать, тут вполне возможна ошибка OutOfMemoryException, не говоря уже о жестком фризе UI при создании всего этого добра)
А как тогда можно вывести вложенный список? Я делал два ресайклера и два UITableView и пересчитывал высоту ячейки динамически. Есть способ получше?
Плоский список с разными темплейтами для корневых и вложенных обьектов
многовато темплейтов для n позиций во вложенном списке пилить прийдется)
BindableStackLayout/BindableLinearLayout если мало элементов Но можно в принципе и UiTableView/RecyclerView. Ресайклер сам растягивается, а вот таблица на иос, нужно создать свой контроль и переопределить один метод и одну пропертю и считать ничего не придется. На иос проблемы с вложенными списками нет, а вот в андроиде, когда тебе нужно и горизонтальный и вертикальный скролл - платформа тебе скажет "приветики". В одном случае оно будет норм работать, а в другой безбожно лагать)) Просто вот сейчас было ScrollView -RecyclerView(horizontal) -- ячейка с вертикальным ресайклером -- ячейка с горизонтальным ресайклером --- 2 ячейки с вертикальным скроллом -- ячейка с вертикальным ресайклером В итоге оно тормозило при переключениях между тремя ячейками. Может конечно я не до конца настроил ресайклер, чтобы он кешировал все это... На второй ячейке пришлось перейти на горизонтальный скролл с LinearLayout И самый прикол, что вертикальные ячейки при достижении верха передавали управление рутовому скроллу, что приводило к нужному поведение, а вот вот горизонтальная ячейка вообще отказывалась скролиться в горизонтальном ресайклере Не отрицаю что я мог сделать что-то не так, но... Там сейчас такие дикие костыли..
А можно по подробнее про таблицу на иос. Что переопределить можно ?
BindableStackLayout - это класс из какой-то либы для нативного ксамарина?
ясно, я просто думал есть уже какое-то готовое, коробочное решение
BindableLayout.ItemsSource BindableLayout.ItemTemplate BindableLayout.ItemTemplateSelector
Касательно горизонтального скролла внутри ячейки при уже горизонтальном основном списке - а может в пень ее? Просто отобразить все айтемы во всю ширину и не ломать себе голову? По хорошему скролл должен быть только в той координатной оси что ограничена по размеру
Не, там нужно)) Но я в принципе все сделал, красиво смотрится Только это все через такие костыли...
Обсуждают сегодня