Cómo configurar el color de un borde de desvanecimiento Android ScrollView?
Tengo un scrollview de Android con un fondo blanco. El borde de desvanecimiento es un gradiente translúcido blanco. Me gustaría cambiarlo de negro en lugar de blanco. Tengo un ListView en el mismo proyecto con un fondo blanco que tiene un borde de desvanecimiento negro por defecto, pero no puedo encontrar donde (si dondequiera) que fue fijado.
- ¿Por qué mi ScrollView es demasiado ancha sólo cuando no necesita desplazarse?
- Múltiples WebViews en ScrollView dando problemas (Android)
- Android ScrollView scrollTo () método no funciona con TextView?
- Comprobar si un androide scrollview puede desplazarse
- Margen redundante al agregar ImageView a ScrollView en Android
- Android - varias vistas de desplazamiento verticales en scrollview horizontal
- Scrollview está detrás de ActionBar Android
- Sincronizar la posición de dos vistas ScrollView
- ScrollView no se desplaza
- Android ScrollView no funciona correctamente
- Cómo obtener ArrayIndex fuera de límites Excepción al agregar nuevos elementos a la lista mientras se desplaza
- Animación de rotación de Android con ScrollView
- Android ScrollView agrega un relleno adicional en la parte superior e inferior de la vista de imagen infantil
Sólo lo encontré por ensayo y error.
Simplemente establezca android:background="@color/yourColor"
para el <ScrollView>
. Establecerá la sombra en el color dado.
Si desea un borde de desvanecimiento de color diferente al de fondo, tiene que sobrescribir el método getSolidColor () de ScrollView. Por ejemplo:
@Override public int getSolidColor() { return Color.rgb(0x30, 0x30, 0x30); }
Puedes usar:
final int glowDrawableId = context.getResources().getIdentifier("overscroll_glow", "drawable", "android"); final Drawable androidGlow = context.getResources().getDrawable(glowDrawableId); androidGlow.setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN); int edgeDrawableId = context.getResources().getIdentifier("overscroll_edge", "drawable", "android"); final Drawable androidEdge = context.getResources().getDrawable(edgeDrawableId); androidEdge.setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
Puede utilizar esto:
https://github.com/AndroidAlliance/EdgeEffectOverride
Simple limpia y trabajando perfecto!
EDIT : esto no responde a la pregunta, que estaba pidiendo ScrollView
. Esta respuesta sólo funciona en AbsListView
y descendientes (incluyendo ListView
).
El color del borde de decoloración es controlado por el atributo android:cacheColorHint
.
P.ej:
<ScrollView android:cacheColorHint="#ff000000" android:background="#ffffffff" />
cacheColorHint
el fondo en blanco, y el cacheColorHint
se utiliza para dibujar el color del borde que se descolora – en este caso, sería negro.
Si usted no sabe qué cambió el color de su borde que se descolora, era probablemente la aplicación de un estilo o de un tema. Comprueba tu manifiesto para android:theme="something"
en una actividad. Si el tema es del grupo android.R.style.Theme.Light
el borde será blanco. El android.R.style.Theme
predeterminado y android.R.style.Theme.Black
tendrá bordes de desvanecimiento de color negro. Los temas también afectan a otros atributos, así que comprueba los atributos completamente antes de lanzarlos en una cosa.
- Borrar el contenido de WebView
- Simple exportación e importación de una base de datos SQLite en Android