LayoutInflater
인플레이션
- xml 레이아웃에 정의된 내용이 메모리에 객체화 되는 과정
- setContentView로 선택된 요소만 메모리에 올라간다.
- setContentView가 되기 전에 뷰에 접근하려 하면 nullpoint오류가 발생한다.
레이아웃 인플레이터
- xml 파일을 해석하여 layout 공간에 붙여준다.
- 정상적으로 레이아웃을 붙이는 처리 후 결과를 View 타입으로 묶어서 return 해준다.
- 오류가 발생하는 경우는 없는 공간에 지정하는 경우가 많다.
- 초기화 식
- Activity에서 사용하는 경우 AppCompatActivity의 getLayoutInflater를 사용한다.
- getSystemService(Context.LAYOUT_INFLATER_SERVICE)
LayoutInflater inflater = getLayoutInflater(); LayoutInflater inflater1 = getSystemService(LayoutInflater.class);
- 인플레이트 기능 예
- true, false 속성은 뷰를 부모에게 즉시 연결할지 여부를 결정한다.
- 프래그먼트는 따로 자바코드를 가지고 있고, 붙는 처리를 메소드로 따로 진행한다.
- 프래그먼트의 인플레이트는 true시 오류가 발생한다.
inflater.inflate(R.layout.sub_layout1, ll_layout, true);
inflater.inflate(R.layout.sub_layout2, rl_layout, false);
- inflate 후 View로 반환하기 때문에 inflate 된 레이아웃의 요소에 접근하기 위해서 View 객체에 반환 값을 부여하고, View.findViewById로 요소를 찾을 수 있다.
'공부일지' 카테고리의 다른 글
231204 (JavaScript) (0) | 2023.12.04 |
---|---|
231201 (Android) (0) | 2023.12.01 |
231128 (JSP) (1) | 2023.11.28 |
231122 (Android) (1) | 2023.11.22 |
231121 (JSP) (2) | 2023.11.21 |