인플레이션 & 인플레이터란?

이세인·2021년 7월 8일
0

do_it_안드로이드

목록 보기
1/3

1. 인플레이션이란?

  • 안드로이드 앱의 기본구조
    화면 배치를 알려주는 xml 파일 + 화면의 기능을 담당하는 자바코드로 이루어져 있다.

새로운 프로젝트를 만들고, 자동으로 생성되는 MainActivity.java를 보면 별 다른 코드는 보이지 않고 setContentView() 가 있음을 알 수 있다.

따라서 이 함수가 소스코드와 xml 파일을 연결한다고 생각해 볼 수 있다!

함수 안에 xml 파일의 이름(activity_main)을 넣어 연결한 것이다.
위 코드에서 R은 res디렉토리를 의미한다. 그 다음은...말 안해도 알겠죠?

하튼 위와 같이 코드를 작성하면 xml 레이아웃을 소스코드에서 사용할 수 있게 되는데, 그 과정은 다음과 같다.

앱이 실행되면 해당 이름의 xml 파일이 메모리에 객체화되고,
객체화된 xml 레이아웃을 소스코드에서 사용하는 것이다.
이 과정을 '인플레이션(Inflation) ' 이라고 한다.

따라서 이 코드는 제일 위에 써야 오류가 나지 않는다.


2. 인플레이터란?

만약 화면 전체 xml이 아니라 부분 화면 xml을 보여주고 싶을 땐 어떻게 해야 할까? 이때는 아까와 같이 setContentView()를 쓰면 안된다.

why? setContentView()는 화면 전체를 설정하는 역할만을 하기 때문.

따라서 부분 화면을 메모리에 객체화하고 싶으면 인플레이터(Inflater) 를 사용해야한다.

  • 어떻게 사용?
    LayoutInflater 클래스를 사용하면 된다

위 코드는 button2를 누르면 부분 화면(sub1.xml)이 뜨게 되는 코드이다.

profile
Hongik CE

0개의 댓글