출처 : 안드로이드 개발자 article
Android LayoutTricks #1 (성능개선)
Android Layout Tricks #2 : Reusing Layouts ( 성능개선 )
Android Layout Tricks #3 : Optimize by merging
Window Backgrounds & UI Speed
Android Layout Tricks #4 : Optimize with stubs
* 원문에서는 Tricks #3 으로 제공되지만, 다른 article 과의 연관성을 고려하여 #4 로 명명하였다.
- android 는 ViewStub 이라는 특별한 widget 을 제공한다. 이 녀석은 거의 쓰이지 않는 view 들에 대해 이점을 제공한다.
- ViewStub 은 매우 가벼운 view 이다. 이 녀석은 dimension 도 없고, 어떤 것도 그리지 않는다. 다시 말해 ViewStub 은 매우 가볍게 hierarchy 안에 포함될 수도 있고, inflate 도 무지 쉽게 될 수 있다.
- ViewStub 을 심플하게 그러나 직관적으로 이야기하자면 "lazy include" 라고 할 수 있다. ViewStub 은 user interface 에 필요할 때만 inflate되고 추가될 수 있다.
- ViewStub 을 사용하기 위해서는 android:id 와 android:layout, 그리고 android:inflatedId 를 명시해 주어야 한다. 이 inflatedId 는 include 하는 view 의 root 의 속성을 override 할는데 사용된다.
- ViewStub 을 inflate 하기 위해서는 inflate 만 호출해주면 된다. 혹은 visibility 를 VISIBLE, INVISIBLE 로 표시해주면 된다.
((ViewStub) findViewById(R.id.stub_import)).setVisibility(View.VISIBLE);
// or
View importPanel = ((ViewStub) findViewById(R.id.stub_import)).inflate();
- 확실히 알고 있어야 하는 것은, ViewStub 이 inflate 가 되면 view hierarchy 에서 ViewStub 이 사라진다. Program 으로 Runtime에 자주 쓰이지 않는 녀석을 필요할 때마다 inflate 하고 add 하던 작업을 ViewStub 으로 바꾸면 아주 간단하며, 성능상의 이슈도 초래하지 않는다.
- ViewStub 의 단점은 현재 <merge/> 태그를 지원하지 않는다는 점이다.
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[android] text 상단 여백 제거방법 - setIncludeFontPadding (0) | 2012.12.03 |
---|---|
[android] Window Backgrounds & UI Speed (0) | 2012.11.28 |
[android] Android Layout Tricks #3 : Optimize by merging (0) | 2012.11.28 |
[android] Android Layout Tricks #2 : Reusing Layouts ( 성능개선 ) (0) | 2012.11.28 |
[android] Android LayoutTricks #1 (성능개선) (0) | 2012.11.28 |
댓글