наиболее эффективный способ размещения элементов RecyclerViews - PullRequest
0 голосов
/ 12 октября 2019

скажем, у нас есть несколько типов данных, которые мы хотим отобразить, например, изображение и текст, некоторые элементы имеют текст, некоторые имеют изображения, а другие могут иметь и то и другое.

было бы лучше создать три макетаодин с представлением изображений для отображения изображений, другой макет с представлением текста для отображения текста, третий макет для данных, содержащих изображения и текст, я выбираю макет на основе имеющихся у меня данных.

илибыло бы лучше просто сделать один макет как с изображением, так и с текстом, установить видимость любого вида, который я хочу использовать, на видимость, и установить видимость другого вида на исчезнувшее.

Я предпочитаюметод сокрытия, поскольку его легче реализовать, но эффективен ли он? если у нас есть 100 элементов только с текстом, это означает, что у нас будет 100 изображений, которые мы не используем.

это простой пример, пожалуйста, примите во внимание, что вмакет не используется и просто скрыт, заранее спасибо.

1 Ответ

0 голосов
/ 13 октября 2019

Я провел некоторый тест и отслеживал производительность в качестве компонентов, загруженных в RecyclerView. Сначала я загрузил несколько элементов в свой RecyclerView, не добавляя никаких дополнительных скрытых представлений, затем я перезапустил приложение, но на этот раз я добавил несколько скрытых представлений вНаконец, я перезапустил приложение, но на этот раз я отобразил представления, которые я скрыл во втором тесте. Из того, что я видел, объем памяти, используемой устройством, зависит от количества представлений, отображаемых на экране, наличие дополнительных скрытых элементов на экране не увеличит использование вашей памяти, в зависимости от того, какмногие элементы в настоящее время видны на экране. Что касается используемой мощности, то она практически одинакова во всех случаях, то же самое относится и к использованию процессора.

Надеюсь, это поможет тем, кто был любопытен, как я, и если я ошибаюсь, пожалуйста, не стесняйтесь исправлятья :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...