ViewStub을 사용하려면 android:id 특성을 지정하고 나중에 스텁을 팽창시키고 android:layout 특성을 지정하여 포함및 팽창할 레이아웃 파일을 참조하기만 하면 됩니다. 스텁을 사용하면 포함된 파일의 루트 ID를 재정의하는 데 사용할 수 있는 세 번째 특성인 android:inflatedId를 사용할 수 있습니다. 마지막으로 스텁에 지정된 레이아웃 매개변수가 포함된 레이아웃의 지붕에 적용됩니다. 다음은 예: setSystemUiVisibility(int)에 대한 플래그: 다른 레이아웃 플래그를 사용하는 경우 fitSystemWindows(android.graphics.Rect)에 제공된 콘텐츠 인세트의 안정적인 보기를 원합니다. 단순히 ViewStub 렌더링 레이아웃의 효율성을 높이기 위해 사용 됩니다. ViewStub을 사용하면 수동으로 뷰를 만들 수 있지만 계층 구조보기에는 추가할 수 없습니다. 런타임에 ViewStub이 팽창하는 동안 뷰욕조의 콘텐츠가 뷰욕조에서 정의된 레이아웃으로 대체될 때 쉽게 팽창할 수 있습니다. 아래 예제에서는 Android 플랫폼에서 ViewStub 클래스의 다양한 구현을 다루는 매우 간단한 방법을 살펴보겠습니다. 두 개의 버튼과 세 번째 구성 요소가 별도의 화면이 아닌 화면에 팝업되는 메시지 대화 상자로 화면을 만들고 다른 사용자 작업을 방해합니다. 그래서 클릭한 버튼 하나에는 이 메시지가 표시되고 다른 버튼은 숨기기만 하면 됩니다. 디스패치에서 호출PopulateAccessibilityEvent (android.view.accessibility.AccessibilityEventEvent) 텍스트 콘텐츠와 접근성 이벤트를 채우기 위해이 보기에 기회를 제공.

위의 코드에서 onClick 메서드는 구성 요소의 ID가 일치하는지 여부를 확인하고 그에 따라 뷰욕조에 대한 가시성 계수를 설정하는 조건을 가짐을 가짐입니다. activity_main.xml 파일에서 뷰Stub 위젯을 정의했습니다. android:layout=»는 inflate()가 호출될 때 viewStub을 대체하는 레이아웃 리소스를 설정하는 데 사용됩니다. 이제 kotlin 파일에서이 위젯에 액세스하여 일부 작업을 수행합니다. 이 상수는 API 수준 28에서 더 이상 사용되지 않았습니다. 뷰 드로잉 캐시는 API 11에서 하드웨어 가속 렌더링이 도입되면서 크게 사용되지 않게 되었습니다. 하드웨어 가속을 사용하면 중간 캐시 계층이 크게 필요하지 않으며 계층을 만들고 업데이트하는 데 드는 비용으로 인해 성능이 순손실될 수 있습니다. 알파 애니메이션과 같이 캐싱 레이어가 유용한 드문 경우지만 setLayerType(int, android.graphics.Graphics)은 하드웨어 렌더링을 통해 이 문제를 처리합니다. View 계층 구조 또는 개별 뷰의 작은 부분의 소프트웨어 렌더링 스냅샷의 경우 뷰에서 비트맵 또는 그림에서 캔버스를 만들고 그리기(android.graphics.canvas)를 호출하는 것이 좋습니다.