开发者

How to change the divider color in the listview?

I need to change the divider color in the listview. The code I am using to accomplish this is quoted below:

<ListView
    android:id="@+id/restaurant_list_widget"
    android:layout_width="1px"
    android:layout_hei开发者_开发百科ght="1px"
    android:layout_weight="1" android:background="@drawable/list"
    android:divider="#FFFFFF"
    android:dividerHeight="4px">
</ListView>  

I still get a black 1px wide divider. What am I doing wrong?

Update: ListItem

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="5dp"
    android:background="@color/list_background">
        <TextView
            android:id="@+id/restaurant_list_item_name"
            android:layout_marginBottom="4dp"
            android:textStyle="bold"
            android:textSize="15dp"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:textColor="#fff"
            android:text="Restaurant Name Goes Here"></TextView>
        <TextView
            android:id="@+id/restaurant_list_item_detail"
            android:textSize="10dp"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"></TextView>    
</LinearLayout>


I have tried it out with:

 <ListView 
    android:id="@+id/ListView01" 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:divider="@color/redBackground"
    android:dividerHeight="1dip">
 </ListView>

and color value is inside colors.xml:

<color name="redBackground">#C60202</color>

And its working fine and displaying Divider color as red with 1dip height.

Update:

Just check your listview layout, you have mentioned 1px for layout_width and layout_height and you are setting 4px for the dividerHeight.


I think the problem is in your ListView's layout_width & layout_height.

Set layout_width="fill_parent" and layout_height="wrap_content"

Otherwise

Ways to Set Divider Color & Height in Listview

  1. You can set this value in a layout xml file using android:divider="#FF0000".

  2. You should also set/reset the height of the divider when you modify it.

     <ListView 
        android:id="@+id/android:list"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:divider="#FFCC00"
            android:dividerHeight="4px"/>
    

  3. You can also specify a Drawable resource in android:divider as well.

  4. You can code it:

    int[] colors = {0, 0xFFFF0000, 0}; // red for the example
    myList.setDivider(new GradientDrawable(Orientation.RIGHT_LEFT, colors));
    myList.setDividerHeight(1);
    
  5. You can do like

    Method 1:

In res/values/colors.xml, put the following:

<resources>
 <color name="sage">#cceebb</color>
</resources>

In your ListActivity-extending class, do this:

ListView lv = getListView();
ColorDrawable sage = new ColorDrawable(this.getResources().getColor(R.color.sage));
lv.setDivider(sage);
lv.setDividerHeight(1);

Method 2:

In res/values/colors.xml:

<resources>
 <drawable name="sage">#cceebb</drawable>
</resources>

And in your class that extends ListActivity:

ListView lv = getListView();
ColorDrawable sage = new ColorDrawable(this.getResources().getColor(R.drawable.sage));
lv.setDivider(sage);
lv.setDividerHeight(1);

Hope it helps


You Just need to set divider attributes of ListView:

android:divider="#FFCC00"


You should add the following code in ListView:

   android:divider="@android:color/white"
   android:dividerHeight="0.2dp"


A different approach is in your styles.xml just add to the style tag

<item name="android:divider">#B6B6B6</item>

e.g:

<style name="Base.Theme.DesignDemo" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimaryDark">#303F9F</item>
    <item name="colorPrimary">#3F51B5</item>
    <item name="colorAccent">#FF5722</item>
    <item name="android:textColorPrimary">@color/textColorPrimary</item>
    <item name="android:textColorSecondary">@color/textColorSecondary</item>
    <item name="android:divider">#B6B6B6</item>
    <item name="android:windowBackground">@color/window_background</item>
</style>


You have to add the following code.

<ListView
        android:id="@+id/restaurant_list_widget"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:divider="#FFFFFF"
        android:dividerHeight="0.5dp" />
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜