안드로이드 : 보이지 않는 것과 사라진 것의 차이점은 무엇입니까?
View 가시성 상태 invisible
와 차이점은 무엇입니까 gone
?
보이지 않는 :
이보기는 보이지 않지만 레이아웃 목적으로 여전히 공간을 차지합니다.
지나간:
이보기는 보이지 않으며 레이아웃을위한 공간을 차지하지 않습니다.
에서 문서 그런 말을 할 수
View.GONE 이보기는 보이지 않으며 레이아웃을위한 공간을 차지하지 않습니다.
INVISIBLE보기이 보기는 보이지 않지만 여전히 레이아웃을위한 공간을 차지합니다.
일부 그림으로 아이디어를 명확하게합니다.
아래와 같이 세 개의 버튼이 있다고 가정하십시오.
이제 버튼 2의 가시성을 보이지 않음 ( View.INVISIBLE
)으로 설정하면 출력은
그리고 버튼 2의 가시성을 사라진 ( View.GONE
)으로 설정하면 출력이
이것이 당신의 의심을 없애기를 바랍니다.
ListView 또는 GridView의 경우 가시성이 처음으로 설정된 경우 다른 차이점이 있습니다.
보이지 않는 :
어댑터의 getView () 함수 호출
지나간:
어댑터의 getView () 함수가 호출되지 않아 필요하지 않은 경우 뷰를로드 할 수 없음
보이지 않음 :
보기를 그려야하고 시간이 걸립니다.
사라짐 :
뷰를 그릴 필요가 없습니다.
가시성으로 뷰를 초기화하면 뷰가 View.GONE
초기화되지 않아 임의의 오류가 발생 한다는 올바른 대답에 추가하고 싶습니다 .
예를 들어 레이아웃을 초기화 한 View.GONE
다음 애니메이션을 시작하려고하면 내 경험상 애니메이션이 무작위로 작동합니다. 때때로 그렇습니다. 가끔 그렇습니다.
따라서 뷰를 처리 (크기 조정, 이동 등)하기 전에 뷰를 초기화 View.VISIBLE
하거나 View.INVISIBLE
화면에서 렌더링 (그리기) 한 다음 처리해야합니다.
View.INVISIBLE- >보기가 보이지 않지만 레이아웃의 일부 공간을 차지합니다.
View.GONE- >보기가 보이지 않으며 레이아웃의 공간을 차지하지 않습니다.
프로그램을 컴파일 할 때마다 사라지다 구성 요소가 초기화됩니다. 즉, 구성 요소를 레이아웃에서 제거하고 구성 요소를 보이지 않게 할 때 레이아웃에서 동일한 공간을 차지하지만 초기화 할 필요가 없을 때마다 .
Visibility = Gone을 설정하면 구성 요소를 초기화해야합니다.
예 : Button _mButton = 새 버튼 (this);
_mButton = (버튼) findViewByid (R.id.mButton);
따라서 가시성 = 보이지 않는 것과 비교하여 더 많은 시간이 걸립니다.
참고 URL : https://stackoverflow.com/questions/11556607/android-difference-between-invisible-and-gone
'Programming' 카테고리의 다른 글
기존 Git 저장소를 다른 저장소로 가져 오는 방법은 무엇입니까? (0) | 2020.02.17 |
---|---|
배쉬에서 숫자 비교 (0) | 2020.02.17 |
CSS를 사용하는 다른 테이블 행 색상? (0) | 2020.02.17 |
APK 설치시 INSTALL_FAILED_NO_MATCHING_ABIS (0) | 2020.02.17 |
클래스와 인스턴스 메소드의 차이점은 무엇입니까? (0) | 2020.02.17 |