我将尝试为列表视图的行设置一个
RippleDrawable
背景。使用view.setBackgroundResource(R.drawable.ripple)
一切正常。当尝试使用view.setBackground(view.getContext().getDrawable(R.drawable.ripple))
当快速点击该项时(我还为该项设置了已激活/选中状态),它可以工作,但涟漪效果不会显示出来,只有在我长按视图时才会出现。
View类中的setBackgroundResource方法如下:
if (resid != 0 && resid == mBackgroundResource) {
return;
}
Drawable d = null;
if (resid != 0) {
d = mContext.getDrawable(resid);
}
setBackground(d);
mBackgroundResource = resid;
基本上,我正在尝试手动完成的确切操作。
注意:我想使用setBackground方法,因为我想以编程方式创建RippleDrawable。
有人知道为什么会发生这种情况吗?
listSelector
来实现它。这种方法可以正常工作,只是我必须尝试找到一种正确设置“已激活”状态的方法。我仍然觉得奇怪的是,为什么使用setBackgroundResource
可以正常工作,但使用setBackgroundDrawable
却不行。你有任何想法吗? - GeorgeP