꿈꾸는 시스템 디자이너

레이아웃 인플레이션(Layout Inflation) 본문

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);

 

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);

 

3단계: 계층구조 생성(옵셥)

MainLayout에 SubTile을 넣고 그 아래 row를 넣는 예제이다.

        MainLayout.addView(SubTitle);
        MainLayout.addView(row,2);

 

4단계: 화면에 출력

setContentView()나 setView()를 호출하여 화면에 출력함

Comments