study record

[안드로이드] inflate란? 본문

안드로이드

[안드로이드] inflate란?

asong 2021. 2. 10. 15:02

inflate란?

xml에 표기된 뷰와 레이아웃들을 메모리에 객체화시키는 행동.

즉 xml코드들을 객체화해서 코드에서 사용하기 위함이다.

 

setContentView()함수가 XML을 객체화시키는 inflate 동작.

setContentView()함수 아래에서 XML 안의 UI요소들을 맘껏 끌어와 쓸 수 있다.

 

만약 다른 화면을 구성하는 XML을 불러오고 싶은 경우(자동으로 생성된 XML이 아닌 유저가 추가적으로 만든 XML을 객체화시키기 위해 inflate 필요).

LayoutInflater 객체를 만들고 원하는 XML을 inflate한다.

 

LayoutInflater inflater = getLayoutInflater();

or 

LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);

 

View v1 = inflater.inflate(R.layout.comedy,null);

 

이후 UI객체에 접근하기 위해서는 v1.findViewById(R.id.button) 하면 된다.

 

+

inflater.inflate(R.layout.comedy, container, true);

라는 코드를 통해서 container라는 레이아웃에, 작성했던 xml의 메모리객체가 삽입되게도 할 수 있다.

매개변수 설명 : inflate( 1.객체화하고픈 xml파일, 2.객체화한 뷰를 넣을 부모 레이아웃/컨테이너, 3.true(바로 인플레이션 하고자 하는지))