ich dieses 5. Hier ist ein Teil des Codes für meine CardView auf einem Nexus läuft:Ripples nicht mit selectableItemBackground als Vordergrund auf einem CardView mit einem Android 5.0-Gerät zeigt
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);
Und hier ist, wie ich das bekommen selectedItemDrawable:
int[] attrs = new int[] { R.attr.selectableItemBackground };
TypedArray ta = getActivity().obtainStyledAttributes(attrs);
selectedItemDrawable = ta.getDrawable(0);
ta.recycle();
Wenn ich die Karte tippen, um die Welligkeit, die mit dem selectedItemDrawable kommen sollen sind nicht angezeigt (es sieht genau das gleiches wie ohne den Vordergrund gesetzt). Ich benutze 5.0, also scheint das merkwürdig, da die appcompat-Dokumentation nur sagt, dass es nicht mit Pre-Lollipop-Geräten funktioniert. Weiß jemand, warum das so ist? Die Mindest-API-Stufe ist 16 und zielt auf 21.
Sind Sie sicher, Sie haben keine Ansicht in Cardview, die auf Match_Parent gesetzt ist und einen eigenen Hintergrund hat? – Hellboy
Ich habe einen Code auskommentiert, der dem CardView eine Ansicht hinzufügt, so dass nur CardView im Layout ist und die Ergebnisse gleich sind. Das Festlegen als Hintergrund für ein LinearLayout mit diesen Eigenschaften in der CardView macht auch nichts. – vemacs
In der Tat, wenn die CardView in XML mit Android: Vordergrund = "? Android: attr/selectableItemBackground", gibt es immer noch keine Ripple-Effekt. – vemacs