android viewstub 예제

android:layout 특성은 inflate() 호출 옆에 팽창되는 View에 대한 참조입니다. 따라서 응용 프로그램을 실행해 보겠습니다. 난 당신이 당신의 컴퓨터와 실제 안드로이드 모바일 장치를 연결 한 가정합니다. Android 스튜디오에서 앱을 실행하려면 프로젝트의 활동 파일 중 하나를 열고 도구 모음에서 아이콘 실행을 클릭합니다. 모바일 장치를 옵션으로 선택한 다음 기본 화면을 표시할 모바일 장치를 확인합니다. 이제 다른 레이아웃 XML 파일이있는 ViewStub을 보여주는 매우 간단한 예제를 만들 수 있습니다. 이 예제에는 ViewStub이 포함된 레이아웃 XML 파일이 있는 활동이 있고 ViewStub에는 ScrollView 및 TextView를 포함하는 다른 레이아웃이 있습니다. ViewStub의 팽창 메서드를 사용하여 보조 레이아웃 XML 파일을 팽창시합니다. 이 메서드는 API 수준 20에서 더 이상 사용되지 않습니다. API 20을 사용 하 여 디스패치적용창인 세트 (android.view.WindowInset) 뷰에 인세트를 적용 합니다. 뷰에 재정의해야apply윈도우인셋 (android.view.WindowInset) 또는 사용을 사용하여 setOnApplyWindowInsetInsetInininer (android.view.View.OnApplyWindowInsetInsetIninininininininininer) 자신의 인세트를 처리하는 구현.

이 보기(및 모든 자식)를 지정된 캔버스로 수동으로 렌더링합니다. 이 함수를 호출하기 전에 뷰가 이미 전체 레이아웃을 수행했어야 합니다. 뷰를 구현할 때이 메서드를 재정의 하는 대신 onDraw (android.graphics.canvas)를 구현 합니다. 이 메서드를 재정의해야 하는 경우 수퍼 클래스 버전을 호출합니다. 이 메서드를 재정의하는 경우 수퍼 클래스 구현을 호출해야 합니다. 디스패치에서 호출PopulateAccessibilityEvent (android.view.accessibility.AccessibilityEventEvent) 텍스트 콘텐츠와 접근성 이벤트를 채우기 위해이 보기에 기회를 제공. 런타임에 팽창하면 콘텐츠가 뷰욕조에 정의된 레이아웃으로 바뀝습니다. 예를 들어, 우리는 안드로이드에서 보기 스텁이 무엇인지 알아야한다. 0 크기의 게으른 팽창 보기입니다. 런타임에 팽창할 것입니다. inflate() 메서드를 사용 하 여 런타임에 팽창 하 고 창 관리자 또는 보기 그룹에 가산 하려고 합니다. set투명(int)을 사용합니다.

우리는 표시하고 안드로이드에서보기 스텁을 숨길 수 있습니다. ViewStub을 사용하려면 android:id 특성을 지정하고 나중에 스텁을 팽창시키고 android:layout 특성을 지정하여 포함및 팽창할 레이아웃 파일을 참조하기만 하면 됩니다. 스텁을 사용하면 포함된 파일의 루트 ID를 재정의하는 데 사용할 수 있는 세 번째 특성인 android:inflatedId를 사용할 수 있습니다. 마지막으로 스텁에 지정된 레이아웃 매개변수가 포함된 레이아웃의 지붕에 적용됩니다. 다음은 API 수준 28에서 이 상수가 더 이상 사용되지 않은 예입니다. 뷰 드로잉 캐시는 API 11에서 하드웨어 가속 렌더링이 도입되면서 크게 사용되지 않게 되었습니다. 하드웨어 가속을 사용하면 중간 캐시 계층이 크게 필요하지 않으며 계층을 만들고 업데이트하는 데 드는 비용으로 인해 성능이 순손실될 수 있습니다. 알파 애니메이션과 같이 캐싱 레이어가 유용한 드문 경우지만 setLayerType(int, android.graphics.Graphics)은 하드웨어 렌더링을 통해 이 문제를 처리합니다.