'Inflation ?? 뭐라구요?? 이게뭐지..'
공부를 하던 도중, 이 부분을 읽다가 깜박 잠이 들었습니다.
휴.. 잠에서 깨고 보니 정리가 필요한 부분같아서 이렇게....
자 그럼, 지금부터 레이아웃 전개가 무엇인지 알아보도록 하죠.
휴.. 잠에서 깨고 보니 정리가 필요한 부분같아서 이렇게....
자 그럼, 지금부터 레이아웃 전개가 무엇인지 알아보도록 하죠.
전개란?
XML문서에 있는 레이아웃은 생성할 뷰의 목록, 구조, 속성 등을 상세하게 적어 놓은것입니다.
즉, 뷰의 목록에 대한 정보일 뿐, 실제 뷰가 아니기 때문에
액티비티(화면) 안에 놓이려면 이 정보대로 객체를 생성해야합니다.
레이아웃은 aapt툴에 의해 이진형태로 컴파일되어 실행파일에 내장되게 되고, 프로그램 실행시에 로드되어 실제 객체로 바뀌게 되어 보이는 것입니다.
한마디로, "XML문서에서 정보를 읽어 실제 뷰 객체를 생성해 내는 동작" 이라고 할 수 있습니다.
바로 이러한 동작을 전개(Inflation)이라고 합니다.
이 전개 과정을 우리가 직접 수행할 수 있도록 공개되어있는데, 다음을 보시길 바랍니다.
public class Inflation extends Activity{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout linear = (LinearLayout)inflater.inflate(R.layout.inflation, null);
setContentView(linear);
}
super.onCreate(savedInstanceState);
LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout linear = (LinearLayout)inflater.inflate(R.layout.inflation, null);
setContentView(linear);
}
}
LayoutInflater 클래스는 XML 리소스를 전개하여 뷰 객체를 만들어 냅니다.
다음과 같은 코드를 사용하면, 전개와 액티비티에 등록까지 한줄에 끝입니다.
그렇다면 왜..! 사용자가 직접 전개를 하도록 전개자를 제공하는 것일까요.
그냥 setContentView로 ID를 전달하면 알아서 되는데 말이죠..
사실 XML문서를 한번에 전개한다면 전개자가 필요가 없습니다.
특정 뷰 하나만 , 또는 특정 뷰 그룹 하나만 따로 전개하는 것을 지원하기 위해서 전개자가 제공되는 것입니다.
어쩔때 사용할 수 있을까요?
예를들어 EditText를 이곳저곳에서 자주 사용한다면?
매번 XML문서에 EditText를 작성하기도 귀찮고,
코드로 new로 생성하기도 귀찮겠죠.
이럴때 EditText 하나에 대해서만 XML문서를 만들어놓고 전개해서 사용하면 됩니다.
물론 EditText 하나만이 아닌, 복잡한 XML문서를 만들어놓고 전개해서 사용하셔도 되구요~~
setContentView(View.inflate(this, R.layout.inflation, null));
전개를 하는 여러가지 방법이 제공되는데, 그때 그때 편한 방법을 사용하면 됩니다.그렇다면 왜..! 사용자가 직접 전개를 하도록 전개자를 제공하는 것일까요.
그냥 setContentView로 ID를 전달하면 알아서 되는데 말이죠..
사실 XML문서를 한번에 전개한다면 전개자가 필요가 없습니다.
특정 뷰 하나만 , 또는 특정 뷰 그룹 하나만 따로 전개하는 것을 지원하기 위해서 전개자가 제공되는 것입니다.
어쩔때 사용할 수 있을까요?
예를들어 EditText를 이곳저곳에서 자주 사용한다면?
매번 XML문서에 EditText를 작성하기도 귀찮고,
코드로 new로 생성하기도 귀찮겠죠.
이럴때 EditText 하나에 대해서만 XML문서를 만들어놓고 전개해서 사용하면 됩니다.
물론 EditText 하나만이 아닌, 복잡한 XML문서를 만들어놓고 전개해서 사용하셔도 되구요~~
'Android Programming > Android Layout' 카테고리의 다른 글
| XML로 레이아웃을 지정하는 이유? (0) | 2010.06.03 |
|---|