Pages

Subscribe:

Labels

Wednesday, 28 September 2011

Dynamically change the ListView height - Android

This post is used to change the ListView height. This is done depends on the childviews .
 This Utility.java class is like this


 import android.view.View;
import android.view.ViewGroup;
import android.view.View.MeasureSpec;
import android.widget.ListAdapter;
import android.widget.ListView;

public class Utility {
    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(desiredWidth, MeasureSpec.UNSPECIFIED);
            totalHeight += listItem.getMeasuredHeight();
        }

        ViewGroup.LayoutParams params = listView.getLayoutParams();
        params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
        listView.setLayoutParams(params);
        listView.requestLayout();
    }
}



In the main Acticity use this Utility class to change the listview height.

 phraseListView=(ListView)findViewById(R.id.phrase_listview);
 phraseAdapter=new PhraseListAdapter(this);
phraseListView.setAdapter(phraseAdapter);
Utility.setListViewHeightBasedOnChildren(phraseListView);
       

17 comments:

Abarshini said...

Thanks for providing really nice information



Android Training

Jesus Alberto said...

Thank you very much!

Vishal gupta said...

ooo guys u rock it

soumen mohar said...

thank u

Slackneo said...

OMG!!! Thank u!!!!!

John Victor said...

Wonderful blog.. Thanks for sharing informative blog.. its very useful to me..
Android Training in Chennai

isabellaJoseph said...

LEARN | GET JOB | HAPPY LIFE @ TIS Academy
Thank you so much for sharing. it’s useful for me.
Dot Net Training in Chennai
Android Training in Chennai

Dot Net Training in Chennai


Swathy Vignesh said...

hi welcome to this blog. really you have post an informative blog. it will be really helpful to many peoples. thank you for sharing this blog.
java training in chennai

Swathy Vignesh said...

hi welcome to this blog. really you have post an informative blog. it will be really helpful to many peoples. thank you for sharing this blog.
java training in chennai

Logavani G said...

hi welcome to this blog. really you have post an informative blog. it will be really helpful to many peoples. thank you for sharing this blog.
selenium training in chennai

Nandhini said...

Thanks for taking time to share this post.It is really useful.Continue sharing more like this.
Regards,
Android Training in Bangalore

john stany said...


Pretty article! I found some useful information in your blog, it was awesome to read, thanks for sharing this great content to my vision, keep sharing..
Android App Development Company

Sharon Sandy said...

great and nice blog thanks sharing..I just want to say that all the information you have given here is awesome...Thank you very much for this one.
web design Company
web development Company
web design Company in chennai
web development Company in chennai
web design Company in India
web development Company in India

isabella jacob said...


Really it was an awesome article...very interesting to read..You have provided an nice article....Thanks for sharing..
Mobile App development Company
Ios App development Company

Cynix Technologies said...

Good information. Thankyou for sharing Android online training

BHARGAV B.L said...

Thank you for sharing sir/madam. You saved my day.

soumya Reddy said...

Wonderful content Thanks for sharing Android Online Training

Post a Comment