如何更改listview中的分隔符颜色?

Raj*_*Raj 39 android

我需要更改listview中的分隔符颜色.我用来完成此任务的代码如下所示:

<ListView
    android:id="@+id/restaurant_list_widget"
    android:layout_width="1px"
    android:layout_height="1px"
    android:layout_weight="1" android:background="@drawable/list"
    android:divider="#FFFFFF"
    android:dividerHeight="4px">
</ListView>  
Run Code Online (Sandbox Code Playgroud)

我仍然得到一个黑色的1px宽分频器.我究竟做错了什么?

更新: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>
Run Code Online (Sandbox Code Playgroud)

Par*_*ani 87

我试过了:

 <ListView 
    android:id="@+id/ListView01" 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:divider="@color/redBackground"
    android:dividerHeight="1dip">
 </ListView>
Run Code Online (Sandbox Code Playgroud)

和颜色值在colors.xml内:

<color name="redBackground">#C60202</color>
Run Code Online (Sandbox Code Playgroud)

它的工作正常并且显示Divider颜色为红色,高度为1dip.

更新:

您只需查看列表视图的布局,你提到1px的对layout_widthlayout_height你正在设置4PX的dividerHeight.


Kar*_*iya 38

我认为这个问题是在你ListViewlayout_width&layout_height.

设置layout_width="fill_parent"layout_height="wrap_content"

除此以外

在Listview中设置分频器颜色和高度的方法

  1. 您可以使用布局xml文件中的此值设置android:divider="#FF0000".

  2. 您还应该在修改分隔符时设置/重置分隔符的高度.

     <ListView 
        android:id="@+id/android:list"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:divider="#FFCC00"
            android:dividerHeight="4px"/>
    
    Run Code Online (Sandbox Code Playgroud)

  3. 您也可以指定Drawable资源android:divider.

  4. 你可以编码:

    int[] colors = {0, 0xFFFF0000, 0}; // red for the example
    myList.setDivider(new GradientDrawable(Orientation.RIGHT_LEFT, colors));
    myList.setDividerHeight(1);
    
    Run Code Online (Sandbox Code Playgroud)
  5. 你可以这样做

    方法1:

在res/values/colors.xml中,输入以下内容:

<resources>
 <color name="sage">#cceebb</color>
</resources>
Run Code Online (Sandbox Code Playgroud)

在您的ListActivity-extending类中,执行以下操作:

ListView lv = getListView();
ColorDrawable sage = new ColorDrawable(this.getResources().getColor(R.color.sage));
lv.setDivider(sage);
lv.setDividerHeight(1);
Run Code Online (Sandbox Code Playgroud)

方法2:

在res/values/colors.xml中:

<resources>
 <drawable name="sage">#cceebb</drawable>
</resources>
Run Code Online (Sandbox Code Playgroud)

在您的类中扩展ListActivity:

ListView lv = getListView();
ColorDrawable sage = new ColorDrawable(this.getResources().getColor(R.drawable.sage));
lv.setDivider(sage);
lv.setDividerHeight(1);
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你


Onu*_*hin 6

您只需要设置ListView的divider属性:

android:divider="#FFCC00"
Run Code Online (Sandbox Code Playgroud)