Set Height of ListView at run time in android

后端 未结 4 1040
不知归路
不知归路 2021-01-03 00:40

How to set Height of ListView.

XML Code (This code is working fine and fixed height as 200 dip)



        
4条回答
  •  醉话见心
    2021-01-03 00:51

    public static boolean setListViewHeightBasedOnItems(ListView listView) {
    
        ListAdapter listAdapter = listView.getAdapter();
        if (listAdapter != null) {
    
            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();
    
            return true;
    
        } else {
            return false;
        }
    
    }
    

提交回复
热议问题