(안드로이드) 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가 가능하다.
안드로이드에서 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가 가능하다.
댓글
댓글 쓰기