Ich versuche, den RecyclerView in einer Android-App zu verwenden. Ich habe das RecyclerView-Beispielprojekt in Android Studio importiert, und es funktioniert einwandfrei.Android selectableItemBackground kein Glow-Effekt auf lange drücken
Ich möchte die Elemente in der Recycler-Ansicht, um visuell zu reagieren, wenn der Benutzer sie lange drückt. Um dies zu tun, setze ich den Hintergrund der Ansicht auf selectableItemBackground
. Ich diese Änderungen vorgenommen:
innen text_row_item.xml, habe ich diese Zeile auf dem FrameLayout tag:
android:background="?android:attr/selectableItemBackground"
innen CustomAdapter.java, ich einen langen Klick Zuhörer auf dem FrameLayout hinzugefügt :
v.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View view) { Log.d(TAG, "Element " + getPosition() + " long clicked."); return true; } });
Wenn ich das modifizierte Beispiel auf einem Lollipop-Emulator ausführe, bekomme ich den schönen Welleneffekt, wenn ich die Elemente in der Recycler-Ansicht lange drücke.
Aber wenn ich die App auf einem KitKat-Emulator ausführen, bekomme ich nicht den Glow-Effekt, der mit KitKat kommt. Das Element in der Liste wird dunkler, wenn ich es lange drücke, und der Long-Click-Listener wird ausgeführt, aber ich habe erwartet, dass die Farbe leuchtet, wenn das lange Drücken ausgeführt wird. Hier
ist ein gif von dem, was ich seing:
Warum selectableItemBackground
nicht den Schein-Effekt auf KitKat laufen? Wie kann ich es sowohl mit KitKat als auch mit Lollipop arbeiten lassen?
verwenden können Das funktioniert nicht. Wenn ich diese Attribute dem Tag FrameLayout hinzufüge, passiert nichts. Ich bekomme immer noch das gleiche Verhalten auf KitKat (keine Animation bei langem Drücken). – Ove
clickable = "true" hat es für meinen Fall funktioniert, danke! Das Problem des Themeninhabers wird jedoch immer noch nicht gelöst – Bruce