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;
基本的に私が手動でやろうとしているのとまったく同じです。
注: RippleDrawable をプログラムで作成したいので、setBackground メソッドを使用します。
なぜこれが起こっているのか誰にも分かりますか?