Development/Android
레이아웃 인플레이션(Layout Inflation)
독행소년
2012. 4. 4. 11:56
하나의 XML 레이아웃을 Activity에 매핑하여 이용하는 앱의 경우 정적인 화면 구성을 가지게 되는데, 동적인 화면구성을 위해서는 레이아웃 인플레이션(Layout Inflation) 기법을 이용한다.
- 레이아웃의 구성을 조각 조각으로 나누어 준비하고, 그때 그때 마다 원하는 조각들로 화면을 재구성할 수 있다.
<사용법>
1단계: 레이아웃 인플레이터 생성
아래와 같은 세가지 방법으로 인플레이터를 생성할 수 있다.
LayoutInflater inflater = (LayoutInflater)this.getSystemService(LAYOUT_INFLATER_SERVICE);
LayoutInflater inflater = this.getLayoutInflater();
LayoutInflater inflater = LayoutInflater.from(this);
LayoutInflater inflater = this.getLayoutInflater();
LayoutInflater inflater = LayoutInflater.from(this);
2단계: 원하는 뷰나 레이아웃들을 읽어 객채화
아래와 같은 방식으로 화면의 구성들을 객채화 할 수 있다.
ViewGroup MainLayout = inflater1.inflate(R.layout.main);
ViewGroup SubTitle = inflater1.inflate(R.layout.sub_title_layout);
View row = inflater1.inflate(R.layout.row, null);
ViewGroup SubTitle = inflater1.inflate(R.layout.sub_title_layout);
View row = inflater1.inflate(R.layout.row, null);
3단계: 계층구조 생성(옵셥)
MainLayout에 SubTile을 넣고 그 아래 row를 넣는 예제이다.
MainLayout.addView(SubTitle);
MainLayout.addView(row,2);
MainLayout.addView(row,2);
4단계: 화면에 출력
setContentView()나 setView()를 호출하여 화면에 출력함