我有一个包含以下列表视图的线性布局:
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:cacheColorHint="#00000000"
android:divider="#FF0000"
android:dividerHeight="4dp"
/>
并且ListActivity使用布局,问题是ListView xml中的以下行没有生效:
android:divider="#FF0000"
android:dividerHeight="4dp"
并设置默认分隔符。你为什么会发生这种情况以及如何解决这个问题?
答案 0 :(得分:5)
它是dp和px的差异。
使用此
android:dividerHeight="4px"
而不是
android:dividerHeight="4dp"
如果你想要
,也可以使用它int[] colors = {0, 0xFFFF0000, 0}; // red for the example
myList.setDivider(new GradientDrawable(Orientation.RIGHT_LEFT, colors));
myList.setDividerHeight(1);
你会得到它..
答案 1 :(得分:3)
对我来说这完美无缺:
<ListView
android:id="@+id/listHomeScreen"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:cacheColorHint="#000"
android:divider="#7F7F7F"
android:dividerHeight="1dip"
android:listSelector="@android:color/transparent" >
</ListView>
确保我们没有覆盖android:dividerHeight或divider颜色。
答案 2 :(得分:1)
现已解决。问题是在我决定在xml中创建列表之前我在listActivity中有这个代码来添加覆盖xml的divider:
int[] colors = { 0xA8A8A8A8, 0xFFFFFFFF, 0xA8A8A8A8 };
getListView().setDivider(new GradientDrawable(Orientation.RIGHT_LEFT, colors));
getListView().setDividerHeight(1);
答案 3 :(得分:1)
Android Lollipop 5.0中存在错误,如果你重写了setEnabled(),那么就会发生这种情况。 查看此问题以获取更多信息 ListView divider not showing in Android 5