我理解它的方式,为列表视图定义的分隔符也应该出现在列表的顶部和底部,即在第一个项目之上和最后一个项目之下。
由于某些原因,它们没有出现在我的列表视图中:
<?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(这是围绕该问题的其他问题中给出的答案)不会改变任何东西。此外,我没有禁用项目,除非有某种默认的页脚将被禁用。
有什么想法吗?
编辑:当我滚过第一个/最后一个项目然后消失时,顶部和底部分隔线上的分隔线似乎瞬间出现。它看起来好像接口将继续,只是稍后才意识到这是最后一项,然后禁用分隔符。
答案 0 :(得分:28)
我使用以下链接帮助解决了这个问题:Divider disappears from last item in listview if footerview added
我做的是添加
android:footerDividersEnabled="true"
属性为XML中的ListView。然后以编程方式,我添加了一个可以使用
选择的空页脚视图 listView.addFooterView(new View(context), null, true);
我没有尝试标题,但我希望它的工作方式相同。
答案 1 :(得分: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);
答案 2 :(得分:0)
我认为您必须使用列表视图下方的视图设置页脚。我有同样的问题,这是我可以得到的解决方案:
答案 3 :(得分: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>
答案 4 :(得分:-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"
/>
此处,背景颜色应与listview的背景颜色相同。