Domanda

Ho uno scrollview Android con uno sfondo bianco. Il bordo sbiadito è un gradiente traslucido bianco. Vorrei cambiarlo essere nero invece di bianco. Ho una visione di List nello stesso progetto con uno sfondo bianco che ha un bordo di sbiadimento nero per impostazione predefinita, ma non riesco a trovare dove (se ovunque) è stato impostato.

È stato utile?

Soluzione

Ho appena scoperto per prova ed errore.

Semplicemente impostato android:background="@color/yourColor" per il <ScrollView>. Imposterà l'ombra sul colore dato.

Altri suggerimenti

Se si desidera un bordo di sbiadimento di colore diverso rispetto allo sfondo, è necessario sovrascrivere il metodo getSolidColor () di ScrollView. Per esempio:

@Override
public int getSolidColor() {
    return Color.rgb(0x30, 0x30, 0x30);
}

Puoi usare:

    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);

Puoi usarlo:

https://github.com/androidalliance/edgeEffectoverride

enter image description here

Semplice pulito e funzionante perfetto!

MODIFICARE: Questo non risponde alla domanda, che chiedeva ScrollView. Questa risposta funziona solo AbsListView e discendenti (incluso ListView).


Il colore del bordo sbiaditore è controllato dal android:cacheColorHint attributo.

Per esempio:

<ScrollView android:cacheColorHint="#ff000000" android:background="#ffffffff" />

imposterà lo sfondo su bianco e il cacheColorHint viene utilizzato per disegnare il colore del bordo di sbiadimento - in questo caso, sarebbe nero.

Se non sai cosa ha cambiato il colore del tuo bordo sbiadito, è stata probabilmente l'applicazione di uno stile o di un tema. Controlla il tuo manifest per android:theme="something" in un'attività. Se il tema proviene dal gruppo android.R.style.Theme.Light Il bordo sarà bianco. Il predefinito android.R.style.Theme e android.R.style.Theme.Black avrà bordi di sbiadimento nero. I temi influenzano anche altri attributi, quindi controlla completamente gli attributi prima di lanciarli per prima cosa.

Fai questo:

  <ScrollView
    android:theme="@style/scrollUpdate"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1" >

in valori stili metti lo stile

<style name="scrollUpdate">
    <item name="colorAccent">@color/yourcolor</item>
    <item name="android:color">@color/yourcolor</item>
    <item name="colorPrimary">@color/yourcolor</item>
    <item name="colorPrimaryDark">@color/yourcolor</item>
</style>

funziona per me tks!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top