안드로이드 스크롤뷰안에 리스트뷰가 있을때 높이 계산
스크롤뷰안에 리스트뷰가 있으면 리스트뷰 높이가 자동으로 계산되지 않는다. 즉 수동으로 계산해야 된다.
누군가 공유한게 있어서 적어본다.
private void setListViewHeightBasedOnItems(ListView listView) { // Get list adpter of listview; ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) return; int numberOfItems = listAdapter.getCount(); // Get total height of all items. int totalItemsHeight = 0; for (int itemPos = 0; itemPos < numberOfItems; itemPos++) { View item = listAdapter.getView(itemPos, null, listView); item.measure(0, 0); totalItemsHeight += item.getMeasuredHeight(); } // Get total height of all item dividers. int totalDividersHeight = listView.getDividerHeight() * (numberOfItems - 1); // Set list height. ViewGroup.LayoutParams params = listView.getLayoutParams(); params.height = totalItemsHeight + totalDividersHeight; listView.setLayoutParams(params); listView.requestLayout(); }
사용예
private ListView mCctvListView = null; ... mCctvListView.setAdapter(new DssDetailCctvAdapter(mContext, mCctvList)); setListViewHeightBasedOnItems(mCctvListView); // 스크롤뷰안에 리스트뷰가 있어서 리스트뷰 높이값 계산 필요.
'안드로이드 개발 팁' 카테고리의 다른 글
안드로이드 아이콘에 뱃지 숫자 설정 (0) | 2019.06.07 |
---|---|
안드로이드 하이브리드앱(기본 브라우져 사용)에서 서버의 Front에서 javascript를 이용하여 연동하는 방법 (0) | 2019.04.29 |
안드로이드 캐쉬 지우기 (0) | 2016.03.30 |
Android Camera motion detection (카메라 모션) (0) | 2016.03.08 |
Android를 개발하면서 필요한 UI 라이브러리 모음 (0) | 2015.11.04 |