在listview Android

时间:2015-07-03 12:07:28

标签: android

我有一个带有自定义行的listView,我需要在每一行之间设置一个自定义分隔符。 这是listView的代码:

<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="@dimen/menu_padding"
android:background="@color/customBlue"
android:divider="@drawable/list_divider" 
android:dividerHeight="2px" />

这是行的代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal" 
tools:ignore="contentDescription"
android:background="@color/strongBlue" >

    <ImageView
        android:id="@+id/row_icon"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:padding="10dp"
        android:src="@drawable/ic_launcher" />

    <TextView
        android:id="@+id/row_title"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center_vertical"
        android:padding="10dp"
        android:textColor="@color/white"
        android:textAppearance="@android:style/TextAppearance.Medium" />
</LinearLayout>

这是2像素分频器的代码:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:bottom="1px">
        <shape android:shape="line">
            <stroke
                    android:color="#0C0832"
                    android:width="2dp"
                    />
            <size
                    android:height="1px"
                    />
        </shape>
    </item>
    <item android:top="1px">
        <shape android:shape="line">
            <stroke
                    android:color="#2D2E57"
                    android:width="2dp"
                    />
            <size
                    android:height="1px"
                    />
        </shape>
    </item>
</layer-list>

问题是我在每行之间有一个随机空间,它与listView backgroundColor具有相同的颜色,如果我将dividerHeight设置为4px,我可以看到我的分隔符。如何删除自动创建的空间并仅使用自定义分隔符?

2 个答案:

答案 0 :(得分:0)

您可以在xml

中提供dp而不是像素
    android:dividerHeight="10dp"
    android:divider="#ffffff"


<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="schemas.android.com/apk/res/android">; 

<gradient 

android:type="radial" 
android:startColor="#343030"
 android:endColor="#151515" 
android:gradientRadius="300" 
android:angle="270" 
android:centerY="0.3"/> 

</shape> 

您可以直接为分隔符赋予颜色,而不是为分隔符设置自定义绘图。

答案 1 :(得分:0)

在线性布局的行中使用以下代码

android:layout_marginTop="15dp"