이와 같이 우리는 안드로이드에서 사용할 수있는 많은보기 하위 클래스가 있습니다. 참고: View.draw(android.graphics.Canvas), View.onDraw(android.graphics.Canvas), 디스패치드그리기(android.graphics.Canvas) 또는 관련 방법에서 이 메서드를 호출하지 마십시오. 측정의 어려운 부분을 수행아이들 : 특정 아이에게 전달하는 MeasureSpec을 알아내는. 이 메서드는 한 자식 뷰의 한 차원(높이 또는 너비)에 대해 올바른 MeasureSpec을 계산합니다. 목표는 최상의 결과를 얻기 위해 자녀의 LayoutParams와 우리의 MeasureSpec의 정보를 결합하는 것입니다. 예를 들어 이 뷰의 크기를 알고 있고(MeasureSpec의 모드가 정확히 있기 때문에) 자녀가 LayoutParams에 부모와 동일한 크기로 표시되도록 표시한 경우 부모는 정확한 크기를 감안할 때 자식에게 레이아웃을 요청해야 합니다. android.util.Log와 함께이 클래스에서 사용하는 로깅 태그. 안드로이드 앱의 사용자 인터페이스는 보기 및 ViewGroup 개체의 컬렉션으로 만들어집니다. 일반적으로 Android 앱에는 하나 이상의 활동이 포함되며 각 활동은 앱의 한 화면입니다. 활동에는 여러 UI 구성 요소가 포함되며 이러한 UI 구성 요소는 View 및 ViewGroup 하위 클래스의 인스턴스입니다.

ViewGroup 하위 클래스에서 호출하여 자식 뷰를 자체에서 제거한 다음 렌더링할 자식 뷰 수를 계산하기 전에 먼저 화면의 크기를 알아야 합니다. 예를 들어 50명의 자식을 “가질” 수 있는 갤러리 또는 ListView를 예로 들 수 있지만 실제로는 현재 화면의 오브젝트 내부에 들어갈 수 있는 자식 수만 렌더링합니다. ViewGroup을 확장하고 뷰 측정 및 레이아웃 파이프라인을 이해하지 않는 한 이 메서드를 호출하지 마십시오. Android의 뷰 그룹은 다른 보기를 포함할 수 있는 특수 보기입니다. 뷰그룹에는 하나 또는 여러 자식이 포함될 수 있습니다. LinearLayout, 프레임 레이아웃, 상대 레이아웃과 같은 다른 모든 표준 레이아웃 관리자는 특정 형식으로 자식을 레이아웃하는 ViewGroup 클래스의 특수 하위 클래스입니다. 예를 들어 LinearLayout 레이아웃은 자식을 수직 또는 수평으로 다른 쪽에 인접한 레이아웃입니다. 다음 URL에서 사용자 지정 보기(터치 지원 포함)에 대한 예를 찾을 수 있습니다 https://www.vogella.com/tutorials/AndroidTouch/article.html#singletouch. 이러한 매개 변수는 view(android.view.View)에 전달된 뷰에 레이아웃 매개 변수가 이미 설정되어 있지 않은 경우 요청됩니다.

null이 반환되면 addView에서 예외가 throw됩니다. 이 메서드는 ViewParent의 현재 중첩 된 스크롤 자식 보기 중첩 된 스크롤 이벤트를 디스패치 할 때 호출 됩니다. 이 메서드에 대 한 호출을 받으려면 ViewParent onStartNestedScroll (android.view, android.view, int)에 대 한 호출에 대 한 true를 반환 해야 합니다. 레이아웃 중에 뷰를 추가합니다. 이 기능은 onLayout() 메서드에서 목록 보기와 마찬가지로 더 많은 뷰를 추가해야 하는 경우에 유용합니다. 인덱스가 음수이면 목록의 끝에 배치됩니다. 예를 들어 선형 레이아웃은 단추, 텍스트 보기 등과 같은 UI 컨트롤을 포함하는 ViewGroup이며 다른 레이아웃도 포함합니다. 사용자 지정 동작을 제공하려는 클라이언트는 onApplyWindowInset(android.view.WindowInset) 메서드를 재정의하거나 setOnApplyWindowInsetInsetListener 메서드를 통해 OnApplyWindowInsetIninininer를 제공해야 합니다.