Влияет ли слишком много представлений View.GONE на скорость рендеринга Android? - PullRequest
0 голосов
/ 24 апреля 2020

Я унаследовал проект, где его экраны пользовательского ввода используют один файл макета. В зависимости от типа пользовательского ввода, который требуется отобразить, группа видов скрыта или отображается с помощью View.GONE и View.VISIBLE. Я не понимаю, почему старые программисты сделали это. Есть ли при этом подход к производительности?

Ответы [ 2 ]

1 голос
/ 24 апреля 2020

Официальное руководство о Improving Layout Performance

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

Вы можете использовать ViewStub. Это невидимое представление нулевого размера, которое можно использовать для ленивого раздувания ресурса макета во время выполнения.

Иногда может потребоваться повторное использование более крупных компонентов, для которых требуется специальный макет. Чтобы эффективно добиться этого, вы можете попробовать набрать Re-using Layouts with <include/>. Хороший способ разделить части макета между различными макетами.

1 голос
/ 24 апреля 2020

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

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