Wie ändert man die Farbe der Über-Scroll-Kante und Über-Scroll-Glühen oder wie ändert man die weiße Farbe (Standardfarbe) von Android 5.0 Lollipop Release?Wie ändert man die Farbe von Overscroll-Kante und Overscroll-Glühen
Antwort
Die Overscroll-Leuchtfarbe erbt den Primärfarbenwert, der in Ihrer gesamten App durch android:colorPrimary
festgelegt wurde. Wenn Sie jedoch einen anderen Wert angeben müssen, verwenden Sie einfach android:colorEdgeEffect
.
<style name="MyAppTheme" parent="***">
<item name="android:colorEdgeEffect">@color/my_color</item>
</style>
Dieses Attribut ist nur für API 21 und höher verfügbar. – fractalwrench
Ja, das ist, was die Frage besagt. –
Beachten Sie, dass 'android: colorPrimary' auch die Farbe Ihrer ActionBar oder Toolbar festlegt. Wohingegen 'android: colorEdgeEffect' spezifischer ist und nur für ListViews, RecyclerViews usw. gilt. –
Auf LOLLIPOP
der Rand glow erbt von colorPrimary
. Nachdem die Ansicht erstellt wurde, kann die Kantenglühfarbe nur durch Reflexion geändert werden. Dies kann nützlich sein, wenn Sie Farben dynamisch mit Palette
laden.
EDIT: TL; DR: die ganze Klasse Download von hier: https://github.com/consp1racy/android-commons/blob/master/commons/src/main/java/net/xpece/android/widget/XpEdgeEffect.java
PROGUARD SETUP: Wenn Sie vorhaben, diese von Support-Bibliothek auf Widgets zu verwenden, müssen Sie die Feldnamen halten . Schnellste Weg, es zu tun, ist die folgende (wenn auch noch verschwenderisch):
-keepclassmembers class * extends android.view.View {
<fields>;
}
-keepclassmembers class android.support.v4.widget.EdgeEffectCompat {
<fields>;
}
Erstellen Sie eine Utility-Klasse mit dem folgenden Code:
private static final Class<?> CLASS_SCROLL_VIEW = ScrollView.class;
private static final Field SCROLL_VIEW_FIELD_EDGE_GLOW_TOP;
private static final Field SCROLL_VIEW_FIELD_EDGE_GLOW_BOTTOM;
private static final Class<?> CLASS_LIST_VIEW = AbsListView.class;
private static final Field LIST_VIEW_FIELD_EDGE_GLOW_TOP;
private static final Field LIST_VIEW_FIELD_EDGE_GLOW_BOTTOM;
static {
Field edgeGlowTop = null, edgeGlowBottom = null;
for (Field f : CLASS_SCROLL_VIEW.getDeclaredFields()) {
switch (f.getName()) {
case "mEdgeGlowTop":
f.setAccessible(true);
edgeGlowTop = f;
break;
case "mEdgeGlowBottom":
f.setAccessible(true);
edgeGlowBottom = f;
break;
}
}
SCROLL_VIEW_FIELD_EDGE_GLOW_TOP = edgeGlowTop;
SCROLL_VIEW_FIELD_EDGE_GLOW_BOTTOM = edgeGlowBottom;
for (Field f : CLASS_LIST_VIEW.getDeclaredFields()) {
switch (f.getName()) {
case "mEdgeGlowTop":
f.setAccessible(true);
edgeGlowTop = f;
break;
case "mEdgeGlowBottom":
f.setAccessible(true);
edgeGlowBottom = f;
break;
}
}
LIST_VIEW_FIELD_EDGE_GLOW_TOP = edgeGlowTop;
LIST_VIEW_FIELD_EDGE_GLOW_BOTTOM = edgeGlowBottom;
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public static void setEdgeGlowColor(AbsListView listView, int color) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
try {
EdgeEffect ee;
ee = (EdgeEffect) LIST_VIEW_FIELD_EDGE_GLOW_TOP.get(listView);
ee.setColor(color);
ee = (EdgeEffect) LIST_VIEW_FIELD_EDGE_GLOW_BOTTOM.get(listView);
ee.setColor(color);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public static void setEdgeGlowColor(ScrollView scrollView, int color) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
try {
EdgeEffect ee;
ee = (EdgeEffect) SCROLL_VIEW_FIELD_EDGE_GLOW_TOP.get(scrollView);
ee.setColor(color);
ee = (EdgeEffect) SCROLL_VIEW_FIELD_EDGE_GLOW_BOTTOM.get(scrollView);
ee.setColor(color);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
Schön! Ich suchte nach einer Möglichkeit, die Leuchtfarbe programmgesteuert zu ändern, und jede Antwort bezog sich auf das Festlegen des Stils in XML. Deine Arbeit hat für mich problemlos funktioniert und ich kann jetzt die Farbe dynamisch ändern, abhängig vom Kontext, wie ich es für die Statusleiste und die Werkzeugleiste mache. Vielen Dank! – MrBrightside
danke. es funktioniert gut. Aber was ist mit 'RecyclerView'? – sajad
@sajad Hier ist die Klasse, die ich verwende, um die Mehrheit der Scroll-Container zu behandeln http://pastebin.com/TAujMUu9 Die einzige fehlende ist 'HorizontalScrollView' denke ich. –
- 1. Wie ändert man die Farbe von MFMailComposeViewController-Texten und Schaltflächenbildern?
- 2. Wie ändert man die Farbe des Etikettentextes?
- 3. Wie ändert man die Farbe eines JSeparators?
- 4. Wie ändert man die Farbe im Optionsmenü?
- 5. Wie ändert man die innere Farbe von Glyphicons in Bootstrap?
- 6. Wie ändert man die Farbe von Donut-Chart in Highchart?
- 7. Sublime Text 2: Wie ändert man die Farbe von Leerzeichen?
- 8. Wie ändert man die graue Farbe von uitabbaritem in uitabbarcontroller?
- 9. Wie ändert man die Farbe von winform DataGridview header?
- 10. Wie ändert man UIPicker Farbe? iPhone
- 11. Wie man Farbe innerhalb der Radioform ändert
- 12. Wie ändert man die Tönungsfarbe von UIAlertController?
- 13. Wie ändert man die Farbe eines UIBezierPath in Swift?
- 14. Wie ändert man die Farbe in einem glänzenden Dashboard?
- 15. Wie ändert man die Farbe des Textes in javafx TextField?
- 16. Wie ändert man die Transparenz einer Farbe in C#
- 17. Wie ändert man die Farbe eines WPF `<Separator />`?
- 18. Wie ändert man die Farbe der Reihenlegende im HighChart-Diagramm?
- 19. CreateJS: wie man die Farbe der Bitmap ändert
- 20. Wie ändert man die Farbe der deaktivierten Bootstrap-Taste?
- 21. Wie ändert man die Farbe der Linien in ggplot
- 22. Wie ändert man die Farbe des hervorgehobenen falsch geschriebenen Wortes?
- 23. Wie ändert man die Farbe des JQueryUI Dialog Title?
- 24. Wie ändert man die Farbe einer interpolierten Zeichenkette?
- 25. Wie ändert man die Farbe des Textcursors in Tkinter?
- 26. Wie ändert man die Farbe der Android-Taste onClick?
- 27. jqMath: Wie ändert man die Farbe eines Ausdrucks?
- 28. wie man Farbe ändert und Text einem Bild hinzufügt
- 29. Wie ändert man die Farbe des geöffneten Bootstrap Dropdown-Schalters?
- 30. Wie ändert man die Farbe des ausgewählten Codes (Vim-Schema)?
möglich Duplikat [android Lutscher Scrollkanteneffekt color] (http: //stackoverflow.com/questions/27104521/android-lollipop-scrollview-edge-effect-color) – alanv