Android selectableItemBackground kein Glow-Effekt bei langem Drücken

8

Ich versuche den RecyclerView in einer Android App zu verwenden. Ich habe das RecyclerView-Beispielprojekt in Android Studio importiert und es funktioniert einwandfrei.

Ich möchte, dass die Elemente in der Recycler-Ansicht visuell darauf reagieren, wenn der Benutzer sie lange drückt. Um dies zu tun, setze ich den Hintergrund der Ansicht auf selectableItemBackground . Ich habe diese Änderungen vorgenommen:

  • in der Datei text_row_item.xml habe ich diese Zeile im Tag FrameLayout hinzugefügt:

    android:background="?android:attr/selectableItemBackground"

  • Innerhalb von CustomAdapter.java habe ich einen Long-Click-Listener 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ühre, bekomme ich den Glow-Effekt von KitKat nicht. Das Element in der Liste wird dunkler, wenn ich es lange drücke, und der Long-Klick-Listener wird ausgeführt, aber ich habe erwartet, dass die Farbe leuchtet, wenn der lange Druckvorgang ausgeführt wird.

Hier ist ein Gif von dem, was ich sehe:

Warum führt selectableItemBackground den Glow-Effekt auf KitKat nicht aus? Wie kann ich es sowohl mit KitKat als auch mit Lollipop arbeiten lassen?

    
Ove 12.07.2015, 11:23
quelle

2 Antworten

3

Verwenden Sie

%Vor%

in Ihrem recyleview Zeilenlayout

    
Libin Thomas 28.07.2015 12:05
quelle
0

Ich hatte das gleiche Problem, als ich android:Theme.Holo.Light.DarkActionBar style verwendet habe. Nach dem Ändern in android:Theme.Material.Light.DarkActionBar funktioniert der Ripple-Effekt.

Also musste ich nur hinzufügen:

%Vor%

in application node in Manifest.xml

Oder wenn Sie eine benutzerdefinierte styles.xml verwenden, können Sie einfach parent="android:Theme.Material.Light.DarkActionBar"

verwenden     
damgad 04.07.2016 13:50
quelle

Tags und Links