【发布时间】:2015-11-14 00:34:24
【问题描述】:
我想将我的CardView 的前景设置为?attr/selectableItemBackground。
当我在 xml 中声明前景时它起作用:
android:foreground="?attr/selectableItemBackground"
但我想以编程方式设置前景。这不起作用:
int[] attrs = new int[]{R.attr.color_a, R.attr.selectableItemBackground};
TypedArray ta = context.obtainStyledAttributes(attrs);
mColorA = ta.getColor(0, 0);
mSelectableItemBackground = ContextCompat.getDrawable(context, ta.getResourceId(1, 0));
ta.recycle();
...
cardView.setOnClickListener(onClickListener);
cardView.setClickable(true);
cardView.setForeground(mSelectableItemBackground);
但是,检索属性是有效的(mSelectableItemBackground 包含RippleDrawable),但是当我按下卡片时前景不会改变。
【问题讨论】:
-
我想我刚刚在这里找到了一个可能的解决方案:stackoverflow.com/q/27474279/4752807 ..我也在多张卡上使用相同的实例..我必须进行调查,然后更新这个问题。
-
你看到这个答案了吗? stackoverflow.com/a/30192562/4409409
标签: android android-xml android-cardview