Comment changer la couleur de overscroll bord et overscroll éclat
Comment Changer la couleur du fil-défilement de bord et plus de défilement de l'éclat ou comment modifier la couleur blanche (couleur par défaut) de la version android 5.0 lollipop?
- double possible de android lollipop scrollview effet de bord de couleur
Vous devez vous connecter pour publier un commentaire.
La overscroll la couleur de la lueur hérite de la couleur primaire de la valeur définie par
android:colorPrimary
dans l'ensemble de votre application. Mais Si vous avez besoin de spécifier une valeur différente, utilisez simplementandroid:colorEdgeEffect
.android:colorPrimary
définit également la couleur de votre ActionBar ou de la Barre d'outils. Alors queandroid:colorEdgeEffect
est plus spécifique et s'applique uniquement aux ListViews, RecyclerViews, etc.Sur
LOLLIPOP
le bord de l'éclat hérite decolorPrimary
. Après la vue est créée le bord de l'éclat de la couleur ne peut être changé que par la réflexion. Cela peut être utile lorsque vous chargez les couleurs de manière dynamique à l'aide dePalette
.EDIT: TL;DR: Télécharger l'ensemble de la classe à partir d'ici:
https://github.com/consp1racy/android-commons/blob/master/commons/src/main/java/net/xpece/android/widget/XpEdgeEffect.java
PROGUARD de l'INSTALLATION: Si vous allez l'utiliser sur les widgets de bibliothèque de prise en charge vous avez besoin de garder les noms de champ. Le moyen le plus rapide de le faire est la suivante (bien que toujours inutiles):
Créer une classe utilitaire avec le code suivant:
RecyclerView
?HorizontalScrollView
je pense.v4
àv13
dans leimport
ligne au début du fichier.Si vous utilisez la dernière RecyclerView mise en œuvre, il est assez simple de changer le débordement de la couleur de la programmation. Utilisez le code suivant (Kotlin mise en œuvre):
Notez que cela ne fonctionne que pour l'API de niveau 21 (Lollipop) et au-dessus. Si vous connaissez la valeur au moment de la compilation, l'utilisation de la
colorEdgeEffect
comme l'a souligné Ahmed.getRecyclerView().setEdgeEffectFactory(new RecyclerView.EdgeEffectFactory() { @NonNull @Override protected EdgeEffect createEdgeEffect(@NonNull RecyclerView view, int direction) { EdgeEffect edge = new EdgeEffect(view.getContext()); edge.setColor(ContextCompat.getColor(view.getContext(), R.color.blue)); return edge; } });
En pré-sucette l'effet "glow" est en fait un Drawable intégré dans le système d'exploitation de ressources, vous pouvez appliquer un ColorFilter sur que:
De l'appeler une fois dans onCreate est assez.