티스토리 뷰
아래 소스를 호출해주면 된다
public void setListViewHeightBasedOnChildren(ListView listView) { ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { // pre-condition return; }
int totalHeight = 0; int desiredWidth = View.MeasureSpec.makeMeasureSpec(listView.getWidth(), View.MeasureSpec.AT_MOST);
for (int i = 0; i < listAdapter.getCount(); i++) { View listItem = listAdapter.getView(i, null, listView); listItem.measure(desiredWidth, View.MeasureSpec.UNSPECIFIED); totalHeight += listItem.getMeasuredHeight(); }
ViewGroup.LayoutParams params = listView.getLayoutParams(); params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); listView.setLayoutParams(params); listView.requestLayout(); } |
위 소스는 반드시 데이터가 모두 추가 된 후 호출해주어야 한다.
방식이 ListView에 child를 가져와서 Height를 주는방식인데, child가 추가되기 전에 호출하면 무용지물!
setListViewHeightBasedOnChildren(list);
'개발 > 개발 자료' 카테고리의 다른 글
(Android Studio) 최신버전에서 한글 깨지는 문제 처리방법! (0) | 2016.12.12 |
---|---|
SoundPool 소리재생 안될 때 sample 1 not READY (0) | 2016.11.12 |
(Object-C) 기본 데이터형과 NSLog 형식 지시자 (0) | 2016.08.29 |
(IOS) JSON 파싱 라이브러리 JOSINKit 사용하기 (0) | 2016.08.25 |
(IOS) 뷰 컨트롤러 생명주기(ViewController Lifecycle) (0) | 2016.08.24 |