Scrollview 안에 Listview 가 있다면

listview 가 제대로 노출이 되지 않습니다.

Scrollview 안에 있는 뷰 높이를 정확히 알 수 없어서

생기는 문제 인데요 이걸 해결 하기 위해서는

listview 높이를 계산하고 높이를 설정해주는 방법입니다.


아래 소스를 이용하시면 listview 의 높이를 구해서

높이를 정의 해줄 수 있습니다.

Scrollview 에서 listview 모든 내용을 모두 노출 해줄 수 있습니다.


protected void onCreate(Bundle savedInstanceState) {
        ListView listview1 = (ListView) view.findViewById(R.id.list1);
        ArrayAdapter<data> adapter = new ArrayAdapter<data>(this, R.layout.simple_list_item, listData1);
        listview1.setAdapter(adapter);
 
        <data>setListViewHeightBasedOnChildren(listview1);
        
}
 
public static void setListViewHeightBasedOnChildren(ListView listView) {
        ListAdapter listAdapter = listView.getAdapter();
        if (listAdapter == null) {
            // pre-condition
            return;
        }
 
        int totalHeight = 0;
        for (int i = 0; i &lt; listAdapter.getCount(); i++) {
            View listItem = listAdapter.getView(i, null, listView);
            listItem.measure(0, 0);
            totalHeight += listItem.getMeasuredHeight();
        }
 
        ViewGroup.LayoutParams params = listView.getLayoutParams();
        params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
        listView.setLayoutParams(params);
        listView.requestLayout();
}

+ Recent posts