-
안드로이드 LayoutInflater안드로이드 스튜디오/JAVA 자바 2021. 12. 13. 23:51
안드로이드 리사이클러뷰를 공부하면서 다음과 같은 개념을 찾아보았습니다.
View를 LayoutInflater 하여 RecyclerView의 onCreateViewHolder 오버라이드 메소드에 사용하는 것을 확인하고, 지금까지 예제를 긁어와서 사용하던 형태에서 벗어나 각각의 의미를 알고 사용하고자 검색을 해봤습니다.
View view = LayoutInflater.from(parent.getContext())
- View 인스턴스를 선언하고, LayoutInflater를 활용하여 레이아웃 위에 뷰를 올립니다.
- 그런데 그 뷰를 어디서 가져오느냐? parent(부모)의 Context()를 가져옵니다. getContext().
- 그리고 올리는데 Inflate. 이 Inflate는 매개 변수 3가지를 가져옵니다.
- 어떤 Layout을 올릴 것인가? 저는 미리 만들어 놓은 featured_card_design을 올린다고 썼습니다.
- 그리고 어디로부터? parent 부모로부터, 참으로 동방예의지국이라고 할 수 있습니다. 역시 인간은 부모님의 도움 없이는....
- false 부분인데, 이 부분은 지금 바로 가져오느냐 아니면, 조금 있다가 가져오느냐 하는 부분이라고 이해했습니다. 그래서 바로 가져오지 않기 때문에 false 를 변수로 해줍니다.
그리고 FeaturedViewHolder의 인스턴스를 선언해주고, return 값을 featuredViewHolder로 받아줍니다. 위의 FeaturedViewHolder의 매개변수(파라미터)는 위의 선언했던 view를 가져옵니다.
- view를 viewHolder의 새로운 인스턴스의 매개 변수로 가져오며, view는 기존의 LayoutInflater로 올려놓은 featured_card_design 의 Layout을 가져오고, viewHoler를 통해서 각각의 view를 받아오며, 그 안의 값을 제가 지정한 형태로 RecyclerView로 가져옵니다.
- 리스트뷰와의 리사이클러뷰의 차이점은 1.메모리 사용량, 2.커스터마이징(텍스트 이외의 추가적인 요소 등)이 있는데, 둘다 올려놓는 것은 마찬가지이나, 어떻게 올릴 것인가에 대한 부분을 고민하는 것이 좋을 것 같습니다.,
- 꽤나 복잡한 과정으로 여겨지지만, 하나하나 차근차근 해결하다보면 리사이클러뷰(RecyclerView)에 대한 전체적인 이해를 바탕으로 지금의 목표인 "이중 RecyclerView"를 할 수 있을 것 같습니다.
역시나 하면 할수록 재미도 있지만, 어디까지 깊게 봐야하는 지를 고민해야하는 프로그래밍 이었습니다.
다음 시간에는 ViewHolder에 대해서 더 자세히 알아봐야겠습니다.
반응형'안드로이드 스튜디오 > JAVA 자바' 카테고리의 다른 글
채팅 시스템 개요 (2) 2023.05.03 AWS EC2의 Mysql과 인텔리제이 JDBC 라이브러리 (0) 2023.05.02 [자바] 생성자의 개념과 생성자를 사용하는 이유 (0) 2022.10.03 카멜 케이스 파스칼 케이스 (0) 2021.12.12 자바 변수와 데이터(1) (0) 2021.12.06