Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Functional Programming
- 디자인패턴
- ㅋㅁ
- 추상팩토리패턴
- PrototypePattern
- Design Pattern
- 옵저버 패턴
- 빌터패턴
- ㅓ
- 추상 팩토리
- a
- 프로토타입 패턴
- Observer Pattern
- builderPattern
- F
- Abstract Factory
- Kotlin
- El
- designPattern
- Singleton
- 싱글톤
- 팩토리 메소드
- 코틀린
- factory method
- r
- 함수형프로그래밍
- 디자인패턴 #
Archives
- Today
- Total
오늘도 더 나은 코드를 작성하였습니까?
ViewStub 본문
레이아웃에 사용 빈도가 매우 낮은 복잡한 뷰가 필요한 때가 있습니다.
종류(예: 항목 세부정보, 진행률 표시기 또는 실행취소 메시지)에 상관없이 필요할 때만 뷰를 로드하여 메모리 사용을 줄이고 렌더링 속도를 높일 수 있습니다.
ViewStub 만들기.
ViewStub는 차원이 없는 가벼운 뷰로, 무엇을 그리거나 레이아웃에 참여하지 않습니다.
따라서 확장하든 뷰 계층 구조에 그대로 남겨두든 리소스 사용이 적습니다.
각 ViewStub는 간단히 android:layout 속성을 포함하여 확장할 레이아웃을 지정해야 합니다.
예) ViewStub는 반투명 진행률 표시줄 오버레이용입니다.
<ViewStub
android:id="@+id/stub_import"
android:inflatedId="@+id/panel_import"
android:layout="@layout/progress_overlay"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"/>
ViewStub 로드하기.
ViewStub에서 지정된 레이아웃을 로드하려면 setVisibility(View.VISIBLE)를 호출하여 표시되도록 설정하거나 inflate()를 호출합니다
findViewById<View>(R.id.stub_import).visibility = View.VISIBLE
// 또는
val importPanel: View = findViewById<ViewStub>(R.id.stub_import).inflate()
표시 및 확장되고 나면 ViewStub 요소는 더 이상 뷰 계층 구조의 일부가 아니며,
확장된 레이아웃으로 교체되며 이 레이아웃의 루트 뷰 ID는 ViewStub의 android:inflatedId 속성으로 지정된 ID입니다.
ViewStub에 지정된 ID android:id는 ViewStub 레이아웃이 표시 및 확장될 때까지만 유효합니다.
'Android Basic' 카테고리의 다른 글
리사이클러뷰 RecyclerView Deep Dive (0) | 2024.09.25 |
---|---|
Android Context란? (0) | 2024.09.22 |
앱에 권한 요청하기! (0) | 2021.03.18 |
permission 개요 및 권한 선언 평가하기 (0) | 2021.03.18 |
viewpager2 (0) | 2021.02.22 |