리스트뷰안에 들어간 데이터의 수 만큼 자동으로 높이를 조절해주는 코드.
public static void setListViewHeightBasedOnChildren(ListView listView) {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
// pre-condition
return;
}
int totalHeight = 0;
int desiredWidth = MeasureSpec.makeMeasureSpec(listView.getWidth(), MeasureSpec.AT_MOST);
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView);
//listItem.measure(0, 0);
listItem.measure(desiredWidth, MeasureSpec.UNSPECIFIED);
totalHeight += listItem.getMeasuredHeight();
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight;
listView.setLayoutParams(params);
listView.requestLayout();
}
반응형
'Android' 카테고리의 다른 글
안드로이드 라이프사이클(android lifecycle) (0) | 2021.05.01 |
---|---|
코틀린 프래그먼트 데이터 전달 (0) | 2021.04.25 |
커스텀 객체를 sharedpreferences 에 저장하고 불러오기 (0) | 2021.04.16 |
Kotlin(코틀린) 에서 fragment 를 써보자 (0) | 2021.04.04 |
MVVM 패턴 설명 - 2(view Model) (0) | 2021.03.27 |
MVVM 패턴 - 설명(1) (View) (0) | 2021.02.11 |
안드로이드 하드웨어 모듈과 TCP/IP 소켓 통신 (0) | 2021.01.28 |
안드로이드에서의 Parcelable vs Serializable (0) | 2021.01.28 |