我正在 Nexus 5 上运行此代码。以下是我的 CardView 的部分代码:
CardView cardView = new CardView(getActivity());
cardView.setRadius(4);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 400);
lp.setMargins(32, 16, 32, 16);
cardView.setLayoutParams(lp);
cardView.setContentPadding(50, 50, 50, 50);
...
cardView.setForeground(selectedItemDrawable);
以下是我获取选定项Drawable的方式:
int[] attrs = new int[] { R.attr.selectableItemBackground };
TypedArray ta = getActivity().obtainStyledAttributes(attrs);
selectedItemDrawable = ta.getDrawable(0);
ta.recycle();
当我点击卡片时,应该会出现与selectedItemDrawable一起出现的涟漪效果,但是并没有出现(它看起来与没有设置前景一样)。我正在运行5.0版本,所以这似乎很奇怪,因为appcompat文档只说它不适用于Lollipop之前的设备。有人知道为什么吗?最低API级别为16,目标为21。