Я хочу установить передний план моего CardView на ?attr/selectableItemBackground
.Добавить selectableItemBackground в CardView
Это работа, когда я объявляю на переднем плане в 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
), но на первый план не меняется при нажатии на карту.
Я думаю, что я только нашел возможное решение здесь: http://stackoverflow.com/q/27474279/4752807 .. Я тоже использую один и тот же экземпляр на нескольких карточках. Затем я должен исследовать и обновлять этот вопрос. – Auroratic
Вы видели этот ответ? http://stackoverflow.com/a/30192562/4409409 –