티스토리 뷰

ListView에 header, footer가 있다는 것을 최근에 알았다. 이걸 몰라서 ScrollView 안에 있도록 작업하느라 상당히 곤란했었는데.... 어쨌든 원래 header, footer를 만들어 넣는 방법 자체는 어렵지 않다. 직접 View를 만들어서 ListView에다가 set 해주면 된다. 문제는 이런 방식이 개인적으로 별로 마음에 들지 않는다는 것이었다. 그냥 원래 레이아웃(ListView가 포함된)을 inflate할 때 자동으로 다 해줬으면 했다. 여기저기 분산되어 있는게 좀 맘에 안 들기도 했고... 


아쉽게도 기본적으로는 불가능했다. 대신 ListView를 상속받아 확장된 커스텀 View를 만드는 것으로 가능하다. HeaderFooterListView라고 대충 이름 지었다. 소스는 gist로 공유 - https://gist.github.com/growingdever/809aba185f98a1b29497

레이아웃 XML에 app:headerView app:footerView 속성에 레이아웃을 지정해주는 것으로 header, footer를 자동으로 같이 inflate 되도록 하게 된다. 아쉽게도 Preview에서는 안 보인다.... attr.xml에 추가해주는걸 잊지 말라.


stackoverflow에 headerView 추가하는 예제가 있는걸 응용해서 footerView도 넣게 만든건데, 해당 글을 다시 검색을 못하겠어서 출처를 못 씀...

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday