Programming

안드로이드 : 보이지 않는 것과 사라진 것의 차이점은 무엇입니까?

procodes 2020. 2. 17. 22:25
반응형

안드로이드 : 보이지 않는 것과 사라진 것의 차이점은 무엇입니까?


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

반응형