为什么divider没有显示在listview中@android:id / list?

时间:2012-03-16 16:20:15

标签: android listview listactivity

我有一个包含以下列表视图的线性布局:

<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"

并设置默认分隔符。你为什么会发生这种情况以及如何解决这个问题?

4 个答案:

答案 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