Выполнение действия с условной видимостью пропало / видимо - PullRequest
0 голосов
/ 14 мая 2018

У меня есть фрагмент, содержащий LinearLayout, который отображается условно или нет. Что касается производительности, что лучше? Отметьте LinearLayout как android:visibility="gone" в XML, а затем в коде я при необходимости установил его видимость, или наоборот?

Ответы [ 3 ]

0 голосов
/ 14 мая 2018

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

проверьте URL: http://magicmicky.github.io/android_development/benchmark-using-traceview/

0 голосов
/ 14 мая 2018

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

Однако я бы посоветовал вам помнить следующее.

  1. В случае изменения ориентации вашей деятельности вам нужно обрабатывать видимость макета в вашей функции onCreate или onResume, когда деятельность будет воссоздана.Если вы скрываете макет и не отслеживаете его в глобальной статической переменной, решение может быть потеряно, и вы можете получить несогласованность в общей структуре макета.Однако, если вы скрываете свой LinearLayout на основании решения, которое принимается в вашей функции onCreate, вы не столкнетесь с этой конкретной ситуацией.
  2. Если этот LinearLayout находится внутри предмета вашего RecyclerView или ListView, подумайте о том, чтобы тщательно обрабатывать каждый из элементов макета.
0 голосов
/ 14 мая 2018

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

Но кажется более логичным изначально установить его в gone если только вы не решите, что это должно быть visible впоследствии.

Вы могли бы также подумать об этом с точки зрения UX, должен ли пользователь увидеть это очень кратко, тогда он исчезнет?или это должно работать наоборот?

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