티스토리 뷰
리스트뷰를 쓰게 되는 경우 한 화면에 표시될 항목 이상일 경우 스크롤을 처리 하도록 되어 있습니다. 그렇지만 간혹 가다 이 스크롤 처리 없이 리스트뷰 해당 아이템수 만큼 그대로 표시 해줄 필요가 있는 경우가 생기게 됩니다. 이럴 경우 사용할수 있는 것이 바로 아이템 수만큼 높이를 조절 해주는 아래의 소스 입니다.
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(); }
사용 방법은 리스트뷰에 adapter 한 후에 위 메소드를 호출 해주면 됩니다. 리스트뷰에 adapter된 아이템 만큼 길이가 늘어나므로scrollView속에 리스트 뷰를 넣어 사용 해야 합니다.
listview1.setAdapter(adapter); setListViewHeightBasedOnChildren(listview1);
'IT > Android' 카테고리의 다른 글
[Android] 전화번호 하이픈(-) 표시 및 포맷 체크하기 (0) | 2016.08.02 |
---|---|
[Android]날짜에 해당하는 요일 구하기(일 ~ 토) (0) | 2016.08.01 |
[Android]이메일(E-mail) 포맷 체크하기 (0) | 2016.07.29 |
[Android]BackKey(뒤로가기)에 이벤트 설정 (0) | 2016.05.26 |
[안드로이드]위경도 좌표로 주소 구하기/ 주소로 위경도 구하기 (5) | 2016.04.30 |
댓글
TAG
- 사제 쿨러
- 초대장
- GPU 출시
- 1800X
- ONLINE JSON
- Looper.prepare()
- 국기 다는 시간
- 다렉
- 테일즈 오브 베르세리아
- 1800TI
- unbound prefix
- 하이엔드 그래픽카드
- 배달 지연
- 한글 패치
- 블로그 개설
- 티스토리 초대장
- 포아너
- 한글패치
- 예약메일 전송
- 투표소
- 민주당 대선 후보
- JSON PASER
- 단면폭
- 19대 선거
- 오픈베타
- GPU 출시가격
- 7700K
- 라이젠
- 래디어 구조
- 림의 외경
최근에 올라온 글
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
공지사항
반응형