본문 바로가기
Android

ListView를 이중 구성할 때 height 고정 문제

by 루에 2015. 4. 24.
반응형

ListView를 이중으로 구성하면 부모에 해당하는 ListView의 높이로 자식 뷰가 고정되는 문제가 있다.


이 때문에 몇 가지 방법이 있겠지만, 그 중 높이를 다시 계산해서 뷰를 뿌려주는 방법이 있다.


아래 코드


                ListAdapter adapter = menu.subMenuView.getAdapter();

                int totalHeight = 0;

                for (int i = 0; i < adapter.getCount(); i++) {

                    View listItem = adapter.getView(i, null, menu.subMenuView);

                    listItem.measure(0, 0);

                    totalHeight += listItem.getMeasuredHeight();

                }

                ViewGroup.LayoutParams params = menu.subMenuView.getLayoutParams();

                params.height = totalHeight + (menu.subMenuView.getDividerHeight() * (adapter.getCount() - 1));

                menu.subMenuView.setLayoutParams(params);

                menu.subMenuView.requestLayout();


간단히 설명하자면 자식 뷰의 어뎁터를 구해서 어뎁터 아이템의 갯수에 따라 높이를 다시 계산하는 방법이다.


좋은 방법이라고는 생각 안하지만... 되도록이면 이중 구성은 안하는게 성능적으로나 모바일 환경에 좋지 않을까 싶다.

반응형

댓글