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?"