본문 바로가기

공부일지

231129 (Android)

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