(안드로이드) LayoutInflater

*inflate는 사전적의미로 "부풀리다"라는 뜻이다.
안드로이드에서 inflate를 사용하면 xml에 씌여져있는 view의 정의를 실제 view 객체로 만드는 역할을 한다.

마치 설계도를 실제 건물로 만드는 것과 같다.


[사용법]

먼저 inflate를 사용하기 위해서는 우선 inflater를 얻어와야 한다.
LayoutInflater inflater=(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);


다음은 설계도 역할인 xml이 필요하다. 이때 xml의 root view의 type이 무엇인지 알아야 한다.
예를들어, xml파일이름이 aa.xml이고, root가 LinearLayout이라면

LinearLayout linearLayout=(LinearLayout)inflater.inflate(R.layout.aa,null);

가져온 view를 화면에 그린다면

setContentView(linearLayout);



[인플레이터를 얻어오는 다른 방법]
LayoutInflater inflater=LayoutInflater.from(this);
Layoutinflater inflater=getLayoutInflater();(@activity)




[추가 정보]

inflater는 성능상의 문제 때문에 compile time에 완성된 xml파일에 대해서만 적용된다.
즉, Runtime에 작성되거나 제공되는 xml에 대해서는 inflate를 적용할 수 없다.
다시말해, R. 으로 시작되는 resource파일들만 inflate가 가능하다.


댓글

이 블로그의 인기 게시물

(18장) WebSocekt과 STOMP를 사용하여 메시징하기

(네트워크)폴링방식 vs 롱 폴링방식

(ElasticSearch) 결과에서 순서 정렬