Skip to content Skip to sidebar Skip to footer

Change The Divider Height Of Listview Dynamically?

This question has been asked here a link Also I want to clarify the question I have 10 List Items in a Listview I want to have the deviderheight of each List Items differently l

Solution 1:

//set Divider as you like   

listView.setDivider((Drawable) getResources().getDrawable(R.drawable.orange));

//then set the height dynamically

listView.setDividerHeight(1);

in your Activity which has the ListView. Not the Adapter class.

If you what exactly what you wrote in the question. Do this:

let each listView Item layout contain a TextView and a View(divider after each item), then depending on the position parameter you get in the getView() method change the Height of the View.

ListView Item layout:

<?xml version="1.0" encoding="utf-8"?><RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="wrap_content"android:padding="5dp" ><TextViewandroid:id="@+id/label"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_toRightOf="@id/logo"android:padding="5dp"android:textSize="14dp" ></TextView><Viewandroid:id="@+id/view"android:layout_width="fill_parent"android:layout_height="1dp"android:layout_below="@id/label"android:background="@drawable/orange" /></RelativeLayout>

now in the adapter class your ViewHolder contains the TextView and also the View.

so,

Holder.View = (View)convertView.findViewById(R.id.view);
if(position == 0){
     (Holder.View).setHeight(2);
}

and so on.

Solution 2:

A slight tweak to above got it working for me (no setHeight() method in View?), thanks:

Holder.View = (View)convertView.findViewById(R.id.view);
if(position == 0){
  (Holder.View).getLayoutParams().height = *your desired height e.g. 20*;
}

Post a Comment for "Change The Divider Height Of Listview Dynamically?"