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

Друзья, нужна помощь Есть layout, в котором очень много вьюх (~80),

из-за этого он заметно долго прогружается перед тем как показаться. К тому же, мне нужно на многие вьюхи навесить слушателей. В общем, много работы происходит при инициализации фрагмента. Хорошая новость, что большинство этих вьюх разделены по группам. В разделе "Существительное" у меня одни вьюхи, в "Глагол" другие вьюхи и так далее. Сейчас по выбору категории я показываю один LinearLayout и прячу другие

Мой вопрос звучит так. Какой есть надежный и хороший способ оптимизации этого макета? Я думал и чтобы иметь просто LinearLayout, а по смене категории удалять из него все вью и загружать необходимые. Думал впихнуть фрагменты, которые будут меняться, но мне нужно, чтобы эти фрагменты могли передавать нужные мне данные в родительский фрагмент

Результат ViewStub

29 ответов

12 просмотров

Сделай RecyclerView и под каждый блок сверстай макет и прикрепи в ViewHolder. Сохраняй поля в вьюмодельке. Думаю поможет

https://developer.android.com/training/improving-layouts/loading-ondemand Возможно это как-то поможет

Savva-Mirzoyan Автор вопроса
Vadim Dzhibalov
Сделай RecyclerView и под каждый блок сверстай мак...

Думаешь, делать ресайклер для 3 элементов, где каждый повторяется 1 раз? Ресайлер вью тогда вообще не использует свои настоящие функции переисползования вьюх

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

Как по мне, это неправильное использование ресайклерВью

Savva Mirzoyan
Как по мне, это неправильное использование ресайкл...

а как по мне правильное. Хотя хз. Не нравится такое, что вообще все не влезло на екран и нужно еще скролить и это не список....

Savva-Mirzoyan Автор вопроса
Ярослав🇺🇦
а как по мне правильное. Хотя хз. Не нравится тако...

Вьюха большая и должна скролиться, но это не список, чтобы тащить сюда ресайклер или листвью

Ярослав🇺🇦
а как по мне правильное. Хотя хз. Не нравится тако...

Ну так я и говорю Scroll view Constraint layout И внутри него все вью добавлять и ни ни больше вложенности

George Levchenko
Ну так я и говорю Scroll view Constraint layout И...

это вообще самый адекватный вариант

George Levchenko
Ну так я и говорю Scroll view Constraint layout И...

да оно нифига не даст со стороны производительности когда много вьюх вообще на екране)

George Levchenko
Вложенность уберет и это добавит

я бы хотел увидеть такой хмл, сколько там строк будет)

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

Добавил ViewStub. Ситуация стала совсем немного лучше, но задержка все равно заметна

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

Опенсорс позволяет все :) Какой код конкретно, его там много

Savva Mirzoyan
Добавил ViewStub. Ситуация стала совсем немного лу...

Оптимизируй вёрстку, собери proguard версию, можно даже AsyncLayoutInflater попробовать заюзать

Savva-Mirzoyan Автор вопроса
George Levchenko
вёрстку

https://gist.github.com/savvasenok/6715fa0435d618e9f5cea5622d0eb268

Ilya
Оптимизируй вёрстку, собери proguard версию, можно...

так выше уже писали чтобы оптимизировал) И примерно каким способом

Savva-Mirzoyan Автор вопроса
Ilya
Оптимизируй вёрстку, собери proguard версию, можно...

Разве прогард помогает оптимизировать загрузку макетов?

Savva-Mirzoyan Автор вопроса
George Levchenko
так выше уже писали чтобы оптимизировал) И примерн...

Я же писал, в констреинты можно переписать, но я свихнусь. Хочется что то другое

Savva Mirzoyan
Разве прогард помогает оптимизировать загрузку мак...

Нет, но он в целом приложение делает быстрее

При том что в обсфусцированном приложении и не дебаг версии в целом всё быстрее работает, в том числе инфлейт

Savva Mirzoyan
Добавил ViewStub. Ситуация стала совсем немного лу...

В крайнем случае можно из кода сверстать или не удалять вьюху при закрытии вкладки)

Savva-Mirzoyan Автор вопроса
Ilya
При том что в обсфусцированном приложении и не деб...

Сомневаюсь, что сможет сократить время отрисовки с 700+мс до приемлимых для 60 фпс

Savva Mirzoyan
Сомневаюсь, что сможет сократить время отрисовки с...

отключённый дебаг априори ускоряет работу))

Savva Mirzoyan
Сомневаюсь, что сможет сократить время отрисовки с...

это не время отрисовки, это время на создание ui

Dmitriy
это не время отрисовки, это время на создание ui

вариантов два, создать ui заранее или упростить настолько чтоб он создавался быстрее

Savva Mirzoyan
https://gist.github.com/savvasenok/6715fa0435d618e...

Бро, у тебя вложенные линеар лейауты внутри скроллвью, ну это по стандарту будет очень напряжно работать, к тому я посмотрел видео процесса работы, там ещё все нормально))

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

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

@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Подобного рода ;Следующие три строки это директивы ассемблера, ;которые можно не задавать, т.к.работаем в Visual Studio. ;Символ ";" - это начало однострочного комментария ...
Егор Анелькин
3
Кто-нибудь знает почему SPM клонирует репо целиком? Некоторые репы просто огромные, как та же swift-syntax которая нужна для использования макросов. Сначала подумал, что это...
iMike
6
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
еще вопрос, допустим мы создадим char массив из 10 элементов и присвоим ему через сканф 10 символов. и выведем все символы. Хотел спросить последний элемент /0 будет включать...
Anthem
11
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
Где в Астане можно купить мясо для шашлыков?
Dancing Іңұқәһүғө
21
Карта сайта