из-за этого он заметно долго прогружается перед тем как показаться. К тому же, мне нужно на многие вьюхи навесить слушателей. В общем, много работы происходит при инициализации фрагмента. Хорошая новость, что большинство этих вьюх разделены по группам. В разделе "Существительное" у меня одни вьюхи, в "Глагол" другие вьюхи и так далее. Сейчас по выбору категории я показываю один LinearLayout и прячу другие
Мой вопрос звучит так. Какой есть надежный и хороший способ оптимизации этого макета? Я думал и чтобы иметь просто LinearLayout, а по смене категории удалять из него все вью и загружать необходимые. Думал впихнуть фрагменты, которые будут меняться, но мне нужно, чтобы эти фрагменты могли передавать нужные мне данные в родительский фрагмент
Результат ViewStub
Сделай RecyclerView и под каждый блок сверстай макет и прикрепи в ViewHolder. Сохраняй поля в вьюмодельке. Думаю поможет
https://developer.android.com/training/improving-layouts/loading-ondemand Возможно это как-то поможет
Думаешь, делать ресайклер для 3 элементов, где каждый повторяется 1 раз? Ресайлер вью тогда вообще не использует свои настоящие функции переисползования вьюх
Как по мне, это неправильное использование ресайклерВью
а как по мне правильное. Хотя хз. Не нравится такое, что вообще все не влезло на екран и нужно еще скролить и это не список....
Вьюха большая и должна скролиться, но это не список, чтобы тащить сюда ресайклер или листвью
Ну так я и говорю Scroll view Constraint layout И внутри него все вью добавлять и ни ни больше вложенности
это вообще самый адекватный вариант
да оно нифига не даст со стороны производительности когда много вьюх вообще на екране)
Вложенность уберет и это добавит
я бы хотел увидеть такой хмл, сколько там строк будет)
Добавил ViewStub. Ситуация стала совсем немного лучше, но задержка все равно заметна
Опенсорс позволяет все :) Какой код конкретно, его там много
Оптимизируй вёрстку, собери proguard версию, можно даже AsyncLayoutInflater попробовать заюзать
https://gist.github.com/savvasenok/6715fa0435d618e9f5cea5622d0eb268
так выше уже писали чтобы оптимизировал) И примерно каким способом
Разве прогард помогает оптимизировать загрузку макетов?
Я же писал, в констреинты можно переписать, но я свихнусь. Хочется что то другое
у самурая нет цели, есть только путь)
Нет, но он в целом приложение делает быстрее
При том что в обсфусцированном приложении и не дебаг версии в целом всё быстрее работает, в том числе инфлейт
В крайнем случае можно из кода сверстать или не удалять вьюху при закрытии вкладки)
Сомневаюсь, что сможет сократить время отрисовки с 700+мс до приемлимых для 60 фпс
отключённый дебаг априори ускоряет работу))
это не время отрисовки, это время на создание ui
вариантов два, создать ui заранее или упростить настолько чтоб он создавался быстрее
Бро, у тебя вложенные линеар лейауты внутри скроллвью, ну это по стандарту будет очень напряжно работать, к тому я посмотрел видео процесса работы, там ещё все нормально))
Обсуждают сегодня