본문 바로가기
IT 기술/Android

[Android] 레이아웃 인플레이션 (Layout Inflation)

by Geunny 2020. 8. 5.
반응형

Android Inflation

안드로이드에서는 사용자의 눈에 보이는 화면의 배치를 XML로 쉽게 만들수 있으며

 

XML 레이아웃 파일의 내용을 메모리상에 로드하여

화면에 보여주는 과정을 인플레이션이라고 한다.

Activity 에서 인플레이션을 사용할 때는

setContentView() 매서드를 이용하고

레이아웃을 추가로 추가할 때

LinearLayout 객체와 LayoutInflater 객체를 만들어

사용한다.

@Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);



           // activity_main 전체 인플레이션
        setContentView(R.layout.activity_main);



        // 컨텐츠를 추가할 레이아웃

        LinearLayout linearLayout = (LinearLayout) findViewById(R.id.linearLayout);



        // 레이아웃 인플레이터 객체

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



        // 인플레이터를 통해 button_layout 부분 인플레이션

        inflater.inflate(R.layout.button_layout, linearLayout, true);


    }

 

Fragment 에서 이용할 때는 onCreateView() 매서드의 매개변수인

inflater 변수를 이용하여 사용한다.

 

@Override

    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
                             
        ViewGroup viewGroup =(ViewGroup) inflater.inflate(R.layout.fragment_blank, container, false);
       
        return viewGroup;
        
    }

 

inflater는 해당 xml을 가져와 xml내부의 컴포넌트들을

findViewById(R.id.컴포넌트_id값) 을 이용하여

해당 Activity or Fragment에 객체로 가져올 수 있다.

 

Activity

@Override

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        // activity_main 전체 인플레이션
        setContentView(R.layout.activity_main);
		TextView activityTv = findViewById(R.id.activityTv);

    }

 

Fragment

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        
        ViewGroup viewGroup =(ViewGroup) inflater.inflate(R.layout.fragment_blank, container, false);
        
        TextView fragmentTv = viewGroup.findViewById(R.id.fragmentTv);
        
        return viewGroup;
    }

 

 

 

 

 

 

 

참고 블로그

https://chebaum.tistory.com/21

 

[Android] 인플레이션(Inflation) 이해하기

※ 출처 : 네이버 안드로이드 부스트코스(https://www.edwith.org/boostcourse-android/lecture/17056/) - '인플레이션 이해하기' - 제가 나중에 보기 쉽게 제가 이해한 내용을 정리해놓은 것으로, 내용이 정확하..

chebaum.tistory.com

https://m.blog.naver.com/PostView.nhn?blogId=diceworld&logNo=220895972216&proxyReferer=https:%2F%2Fwww.google.com%2F

 

Android 레이아웃 인플레이션

- Android 인플레이션이란? XML 레이아웃 파일의 내용을 메모리상에 로드하여 화면에 보여주는 과정을 ...

blog.naver.com

 

'IT 기술 > Android' 카테고리의 다른 글

[Android] SDK 버전 정리.  (0) 2020.08.05
[Android] Room Database 기초  (0) 2020.08.05
[Android] AAC (Android Architecture Component)  (0) 2020.07.28
[Android] Activity Lifecycle  (0) 2020.07.27

댓글