Что на самом деле происходит, когда вы устанавливаете невидимость невидимой/исчезнувшей на Android?

#android #android-view #visibility #android-source

Вопрос:

Когда вы вызываете setVisibility(View.INVISIBLE) / setVisibility(View.GONE) на просмотр, что на самом деле происходит за кулисами на практике, чтобы сделать вид невидимым/исчезнувшим? Я знаю, что установлен флаг с перечислением, но помимо этого в иерархии что происходит, чтобы сделать представление «невидимым» или «исчезнувшим»?

Например, View.Gone устанавливает ли высота/ширина для вида значение 0? View.Invisible Устанавливает ли альфа значение 0?

Комментарии:

1. Это не так просто, как просто изменить представление, когда оно изменилось. Флаги видимости постоянно проверяются родителем ViewGroup , поскольку они изменяют способ выполнения измерения макета, рисования, касания, фокусировки и т.д. Вы можете просто прочитать источник ViewGroup и увидеть, что VISIBILITY_MASK он часто используется.