마침내 사용자 정의 보기를 직접 만들 시간입니다! 복합 뷰에 대해 view_color_options.xml이라는 다음 레이아웃 파일을 만듭니다. 측정 패스 – `측정(int, int)` 방법으로 구현됩니다. 이 작업은 뷰 계층 구조의 하향식 통과로 발생합니다. 모든 뷰는 측정값을 저장합니다. 이 규칙은 View.BasedSaveState를 데이터를 유지하기 위한 뷰의 정적 내부 클래스로 확장하는 것입니다. 병합 태그는 실제로 유용하지만 상위 태그가 더 간단한 경우 유용합니다. 내 의견으로는 내가 만들고 싶지 않은 절충의 종류입니다. 오늘날의 전화는 이전과 같지 않으며 훨씬 더 유능합니다. 요즘 우리는 제약 조건 레이아웃, 이미 우리의 레이아웃의 깊이 줄이기 위해 도움이, 따라서 그들은 사용자 정의 사용자 지정 보기의 루트 태그로 LinearLayout을 유지 하는 것을 선호 합니다. 복합 뷰 – 뷰를 기본 배선과 결합레이아웃 관리자는 뷰의 onMeasure() 메서드를 호출합니다. 뷰는 레이아웃 관리자로부터 레이아웃 매개 변수를 받습니다.
레이아웃 관리자는 모든 자식의 크기를 결정할 책임이 있습니다. 뷰는 활동의 라이프 사이클 이벤트에 액세스할 수 없습니다. 뷰에서 이러한 이벤트에 대한 정보를 얻으려면 활동의 라이프 사이클 메서드에서 호출하는 뷰에 인터페이스를 만들어야 합니다. Android 사용자 지정 보기 자습서 시리즈의 이 게시물은 기존 레이아웃을 확장하고 기존 보기를 사용하여 Android에서 사용자 지정 보기를 만드는 기본 을 다루었습니다. 다음 포스트에서는 View 클래스를 확장하고 캔버스로 직접 그리는 방법을 설명합니다. 경우에 따라 일부 뷰를 하나의 구성 요소로 그룹화하여 특정 코드 나 비즈니스 논리를 작성하여 서로 쉽게 처리 할 수 있도록하려고합니다. “복합 보기”라고 부를 수 있습니다. 복합 뷰는 재사용성과 모듈성을 제공합니다. onDetachedFromWindow()는 뷰가 부모로부터 제거될 때(그리고 부모가 창에 연결된 경우) 사용됩니다.
예를 들어 활동이 재활용되는 경우(예: 완료된() 메서드 호출을 통해) 또는 뷰가 재활용되는 경우 발생합니다. 각 뷰에는 각각 MeasureSpec으로 알고 있는 onMeasure()에서 두 개의 포장된 int 값이 주어지며, 뷰는 크기를 설정하는 방법을 검사해야 합니다.