19

按照我的理解,为列表视图定义的分隔符也应该出现在列表的顶部和底部,即第一项上方和最后一项下方。

由于某种原因,它们没有出现在我的列表视图中:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainLayout"
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:background="@drawable/background">

<ImageView
    android:id="@+id/home"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingLeft="3dp"
    android:paddingTop="3dp"
    android:paddingBottom="3dp"
    android:src="@drawable/homeicon"/>

<TextView
    android:id="@+id/titleBar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Page Title" 
    android:layout_marginLeft="10dp" 
    android:paddingTop="3dp"
    android:textSize="18sp" 
    android:textStyle="bold" 
    android:typeface="serif" 
    android:textColor="#FFFFFF"
    android:layout_centerHorizontal="true"/>

<ImageView
    android:id="@+id/back"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingRight="8dp"
    android:paddingTop="8dp"
    android:src="@drawable/backicon" 
    android:layout_alignParentRight="true"/>


<ImageView
    android:id="@+id/separator1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/home"
    android:scaleType="fitXY"
    android:src="@drawable/separatorimg" />


<ListView
    android:id="@android:id/android:list" 
    android:layout_below="@+id/separator1"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:cacheColorHint="#00000000"
    android:divider="@drawable/separatorimg">
</ListView>

</RelativeLayout>

将 android:footerDividersEnabled 设置为 true (这是围绕该问题的其他问题中给出的答案)不会改变任何东西。我也没有禁用的项目,除非有某种默认页脚会被禁用。

有任何想法吗?

编辑:当我滚动经过第一个/最后一个项目时,顶部和底部分隔线的分隔线似乎会出现一瞬间,然后消失。看起来界面似乎要继续,只是后来才意识到这是最后一项,然后禁用了分隔符。

4

5 回答 5

30

我使用以下链接的帮助解决了这个问题:如果添加了页脚视图,则分隔符从列表视图中的最后一项消失

我所做的是添加

  android:footerDividersEnabled="true" 

XML 中的 ListView 属性。然后以编程方式,我添加了一个空的页脚视图,可以使用

 listView.addFooterView(new View(context), null, true);

我没有尝试标题,但我希望它以相同的方式工作。

于 2013-07-26T13:23:08.917 回答
4

我有同样的问题。这是我解决它的方法:

<ListView
    android:id="@+id/my_list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:divider="@color/transparent"
    android:dividerHeight="@dimen/padding_default"
    android:footerDividersEnabled="false"
    android:headerDividersEnabled="false" >
</ListView>

然后,在 onCreate() 方法中,我有:

View v = new View(this);
v.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, 1));
mList.addFooterView(v);
于 2013-04-25T03:25:47.043 回答
0

我认为您必须使用列表视图下方的视图设置页脚。我有同样的问题,这是我可以得到的解决方案:

在列表中的最后一项之后显示分隔符

于 2012-08-27T09:37:15.177 回答
0

请在下面找到修改后的代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/background" >

<LinearLayout
    android:id="@+id/llAppBar"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:orientation="horizontal"
    android:weightSum="10" >

    <ImageView
        android:id="@+id/home"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:paddingBottom="3dp"
        android:paddingLeft="3dp"
        android:paddingTop="3dp"
        android:scaleType="fitXY"
        android:src="@drawable/homeicon" />

    <TextView
        android:id="@+id/titleBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_weight="6"
        android:paddingTop="3dp"
        android:text="Page Title"
        android:textColor="#FFFFFF"
        android:textSize="18sp"
        android:textStyle="bold"
        android:typeface="serif" />

    <ImageView
        android:id="@+id/back"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:paddingRight="8dp"
        android:paddingTop="8dp"
        android:scaleType="fitXY"
        android:src="@drawable/backicon" />
</LinearLayout>

<ImageView
    android:id="@+id/separator1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/llAppBar"
    android:scaleType="fitXY"
    android:src="@drawable/separatorimg" />

<ListView
    android:id="@android:id/android:list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/separator1"
    android:cacheColorHint="#00000000"
    android:divider="@drawable/separatorimg" >
</ListView>

</RelativeLayout>
于 2012-08-27T09:40:19.813 回答
-2

我有同样的问题,设置填充和背景颜色解决了它。

<ListView
    android:id="@+id/list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/gray_background"
    android:paddingTop="1dp"
    android:paddingBottom="1dp"        
/> 

此处,背景颜色应与列表视图的分隔符的背景颜色相同。

于 2015-06-12T03:40:25.743 回答