biegnę to na Nexus 5. Oto część kodu dla mojego CardView:Zmarszczki nie wykazujące selectableItemBackground jak planie na CardView z Android 5.0 urządzenie
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);
A oto jak się dostać selectedItemDrawable:
int[] attrs = new int[] { R.attr.selectableItemBackground };
TypedArray ta = getActivity().obtainStyledAttributes(attrs);
selectedItemDrawable = ta.getDrawable(0);
ta.recycle();
Gdy klikniesz kartę, tętnienia, które miało pochodzić z selectedItemDrawable nie pojawia (wygląda dokładnie tak samo jak bez planie zestawie). Używam wersji 5.0, więc wydaje mi się to dziwne, ponieważ dokumentacja appcompat mówi tylko, że nie działa z urządzeniami pre-Lollipop. Czy ktoś wie, dlaczego tak się dzieje? Minimalny poziom API to 16, celem jest 21.
Czy jesteś pewien, że nie masz żadnego widoku w widoku z karty, który jest ustawiony na match_parent i ma własne tło? – Hellboy
Skomentowałem dowolny kod, który dodaje widok do CardView, więc tylko CardView jest w układzie, a wyniki są takie same. Ustawienie, że jako tło do LinearLayout z tymi właściwościami w CardView również nic nie robi. – vemacs
Rzeczywiście, podczas definiowania CardView w XML z Androidem: foreground = "? Android: attr/selectableItemBackground", nadal nie ma efektu marszczenia. – vemacs