ListView未显示默认的按下颜色

时间:2012-06-03 19:25:34

标签: android listview dialog

我添加了一个自定义对话框,里面只有一个简单的listView。

在按下项目时,我没有获得选择颜色(通常在列表视图中显示而没有任何其他设置)。点击监听器工作等,但不是颜色。

还尝试明确设置选择器:

list.setSelector(R.color.blue);

但它不会发生任何事情。尝试为列表设置不同的背景颜色,仍然没有选择颜色。

3 个答案:

答案 0 :(得分:0)

可能您创建的颜色资源有问题,因为我可以使用list.setSelector(R.color.blue);更改嵌入自定义对话框中的列表项选择的颜色。

答案 1 :(得分:0)

我遇到了同样的问题。通过添加:

修复了它
StateListDrawable drawable = new StateListDrawable();
drawable.addState(new int[] { android.R.attr.state_pressed }, new ColorDrawable(Color.BLUE));
view.setBackgroundDrawable(drawable);

ListView的适配器getView()方法。

答案 2 :(得分:0)

好的,我迟到了回答这个问题,但我找到了实际答案,以防将来有人在寻找答案。这里的另外两个答案没有用。

所以我有一个ListView,它有一个自定义ListView行,以drawables为背景。这样做是为了使默认的PRESSED灰色高光不会闪烁并打开,就像你长按一样。发生的事情是ListView正在View下方绘制选择器(如果有的话)。以下是解决问题的方法:

on onCreate:

// this sets the selector/pressed drawable or you could use a color or whatever
listView.setSelector(getResources().getDrawable(R.drawable.listviewrow_pressed));

// this draws the selector drawable/color on top
listView.setDrawSelectorOnTop(true);