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

时间:2011-07-01 07:07:17

标签: 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>  

我仍然得到一个黑色的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>

5 个答案:

答案 0 :(得分:85)

我已尝试过:

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

,颜色值在colors.xml中:

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

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

更新

只需查看您的列表视图布局,您已经提到了layout_widthlayout_height的1px,而您为dividerHeight设置了4px。

答案 1 :(得分:38)

我认为问题发生在ListView的{​​{1}}&amp; layout_width

设置layout_heightlayout_width="fill_parent"

否则

设置分频器颜色和方式的方法列表视图中的高度

  1. 您可以使用layout_height="wrap_content"在布局xml文件中设置此值。

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

    android:divider="#FF0000"

  3. 您也可以在 <ListView android:id="@+id/android:list" android:layout_width="wrap_content" android:layout_height="wrap_content" android:divider="#FFCC00" android:dividerHeight="4px"/> 中指定Drawable资源。

  4. 您可以对其进行编码:

    android:divider
  5. 你可以这样做

    方法1:

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

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

    <resources> <color name="sage">#cceebb</color> </resources> - 扩展课程中,执行以下操作:

    ListActivity

    方法2:

    在res / values / colors.xml中:

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

    在您的类中扩展ListActivity:

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

    希望有所帮助

答案 2 :(得分:6)

您只需要设置ListView的分隔符属性:

android:divider="#FFCC00"

答案 3 :(得分:2)

您应该在ListView中添加以下代码:

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

答案 4 :(得分:0)

您必须添加以下代码。

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