Christian Mastracco
Christian Mastracco

Reputation: 35

How to resize a ListView programmatically

I'm working on a new application and i want to resize a ListView programmatically, for example from a ListView with params of 200x100 to a 100x100.

How can i resize the dimension of the ListView?

Upvotes: 0

Views: 103

Answers (1)

Kemal
Kemal

Reputation: 36

public void setListViewHeightBasedOnChildren(ListView listView) {
         ArrayAdapter listAdapter = (ArrayAdapter) listView.getAdapter(); 
            if (listAdapter == null) {
                // pre-condition
                return;
            }
            int totalHeight = 0;
            for (int i = 0; i < 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();
        }

Upvotes: 2

Related Questions