В чем разница между статусом видимости invisible
и gone
для него?
В чем разница между статусом видимости invisible
и gone
для него?
Ответы:
INVISIBLE:
Это представление невидимо, но все же занимает место для макета.
УШЕЛ:
Это представление невидимо, и оно не занимает места для макета.
display:none
& visibility:hidden
в HTML / CSS :-)
Из документации можно сказать, что
View.GONE Этот вид невидим, и он не занимает места для макета.
View.INVISIBLE Это представление невидимо, но все же занимает место для макета.
Давайте проясним идею с некоторыми картинками.
Предположим, что у вас есть три кнопки, как показано ниже
Теперь, если вы установите видимость Button Two как invisible ( View.INVISIBLE
), тогда вывод будет
И когда вы установите видимость Button Two как пошел ( View.GONE
), то вывод будет
Надеюсь, это очистит ваши сомнения.
Я хотел бы добавить к правильным и успешным ответам, что если вы инициализируете представление с видимостью as View.GONE
, представление могло быть не инициализировано, и вы получите некоторые случайные ошибки.
Например, если вы инициализируете макет как, View.GONE
а затем пытаетесь запустить анимацию, из моего опыта моя анимация работает случайным образом. Иногда да, иногда нет.
Таким образом, перед обработкой (изменением размера, перемещением и т. Д.) Представления вы должны инициировать его как View.VISIBLE
или View.INVISIBLE
отрисовать (нарисовать) на экране, а затем обработать его.
GONE
когда вы делаете это Унесенным каждый раз при компиляции программы, компонент инициализируется, что означает, что вы удаляете компонент из макета, а когда вы делаете его невидимым, компонент занимает то же место в макете, но каждый раз, когда вам не нужно его инициализировать ,
если вы установите Visibility = Gone, то вы должны инициализировать компонент .. как
например, кнопка _mButton = новая кнопка (это);
_mButton = (кнопка) findViewByid (R.id.mButton);
так что это займет больше времени по сравнению с Visibility = invisible.
View.INVISIBLE -> View невидим, но он будет занимать некоторое место в макете
View.GONE -> Вид не виден и не будет занимать места в макете