Wie setze ich den Ripple-Effekt programmgesteuert auf ein LinearLayout?
Lesezeit: 3 Minuten
Splact
Ich möchte den Hintergrund festlegen android.R.attr.selectableItemBackground zu einem LinearLayout. Bei Verwendung von XML gibt es keine Probleme (es funktioniert)
… und es funktioniert nicht, tatsächlich bekomme ich a NotFoundException in dieser zweiten Zeile. Nachdem ich diese Variante ausprobiert habe, denke ich, dass die Ressource eine Farbe ist.
Dieser startet keine Ausnahme, aber … funktioniert nicht (es gibt keine Änderung des Hintergrunds beim Drücken, aber der Zustand ändert sich, wenn er gedrückt wird, wie es sein muss) … irgendein Vorschlag?
ändern Sie die Farbe in der onClick-Methode Ihrer Aktivität..???
– Usama Sarwar
5. Januar 2012 um 7:59 Uhr
Dann denke ich, dass Sie die onClick-Methode überschreiben müssen, um Ihre Funktionalität zu erledigen.
– Usama Sarwar
6. Januar 2012 um 13:17 Uhr
Ich versuche es genauso und bisher ohne Erfolg. Wenn Sie eine Lösung gefunden haben, lassen Sie es mich bitte wissen, oder wenn jemand weiß, ob dies tatsächlich möglich ist, geben Sie Feedback. Danke!
– Sandra
16. Mai 2012 um 10:28 Uhr
Für alle, die nach dem Gegenstück der Support-Bibliothek suchen, ist es genau das Richtige android.support.design.R.attr.selectableItemBackground.
– Sufian
2. März 2016 um 13:15 Uhr
Mein vorheriger Kommentar scheint jetzt nicht zu funktionieren (oder hat es vielleicht nie getan). Was jetzt funktioniert ist R.attr.selectableItemBackground.
– Sufian
2. April 2016 um 7:22 Uhr
Wooseong Kim
Sie können auf diese Weise verwenden.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
// If we're running on Honeycomb or newer, then we can use the Theme's
// selectableItemBackground to ensure that the View has a pressed state
TypedValue outValue = new TypedValue();
this.getTheme().resolveAttribute(android.R.attr.selectableItemBackground, outValue, true);
textView.setBackgroundResource(outValue.resourceId);
}
Funktioniert bei mir nicht, weiße Farbe, sie kommen nicht an, um den Farbakzent vom Thema auf dem Pre-Lollipop-Gerät zu halten
– Anton
28. August 2015 um 12:19 Uhr
Wenn Sie Ihre Themenfarben beibehalten möchten, verwenden Sie R.attr.selectableItemBackground anstelle von android.R.attr.selectableItemBackground
– Quentin G.
11. September 2015 um 13:46 Uhr
Verwenden R.attr.selectableItemBackground verwendet das Attribut von AppCompat (falls Sie das einschließen) und greift standardmäßig auf das Ein- und Ausblenden anstelle von Ripple für Pre-Lollipop zurück. Beachten Sie, dass R ist dein packagename.R.
– Sufian
2. April 2016 um 7:23 Uhr
Stimmen Sie für die funktionierende Antwort ab, es hilft wirklich, danke
ändern Sie die Farbe in der onClick-Methode Ihrer Aktivität..???
– Usama Sarwar
5. Januar 2012 um 7:59 Uhr
Dann denke ich, dass Sie die onClick-Methode überschreiben müssen, um Ihre Funktionalität zu erledigen.
– Usama Sarwar
6. Januar 2012 um 13:17 Uhr
Ich versuche es genauso und bisher ohne Erfolg. Wenn Sie eine Lösung gefunden haben, lassen Sie es mich bitte wissen, oder wenn jemand weiß, ob dies tatsächlich möglich ist, geben Sie Feedback. Danke!
– Sandra
16. Mai 2012 um 10:28 Uhr
Für alle, die nach dem Gegenstück der Support-Bibliothek suchen, ist es genau das Richtige
android.support.design.R.attr.selectableItemBackground
.– Sufian
2. März 2016 um 13:15 Uhr
Mein vorheriger Kommentar scheint jetzt nicht zu funktionieren (oder hat es vielleicht nie getan). Was jetzt funktioniert ist
R.attr.selectableItemBackground
.– Sufian
2. April 2016 um 7:22 Uhr