Как установить цвет исчезающего края Android ScrollView? - PullRequest
39 голосов
/ 15 апреля 2010

У меня есть скроллвид Android с белым фоном. Угол затухания - белый полупрозрачный градиент. Я хотел бы изменить его на черный вместо белого. У меня есть ListView в том же проекте с белым фоном, который по умолчанию имеет черный замирающий край, но я не могу найти, где (если где-либо), который был установлен.

Ответы [ 7 ]

80 голосов
/ 05 октября 2010

Если вы хотите, чтобы кромка затухания цвета отличалась от фона, вы должны переопределить метод getSolidColor () ScrollView. Например:

@Override
public int getSolidColor() {
    return Color.rgb(0x30, 0x30, 0x30);
}
40 голосов
/ 11 июня 2010

Только что обнаружил методом проб и ошибок.

Просто установите android:background="@color/yourColor" для <ScrollView>. Это установит тень для данного цвета.

7 голосов
/ 14 августа 2014

Вы можете использовать:

    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);
6 голосов
/ 15 августа 2013

Вы можете использовать это:

https://github.com/AndroidAlliance/EdgeEffectOverride

enter image description here

Простая чистота и идеальная работа!

6 голосов
/ 15 апреля 2010

РЕДАКТИРОВАТЬ : это не отвечает на вопрос, который запрашивал ScrollView. Этот ответ работает только на AbsListView и потомках (включая ListView).


Цвет затухающей кромки контролируется атрибутом android:cacheColorHint.

например:.

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

установит белый фон, а cacheColorHint используется для рисования цвета затухающей кромки - в этом случае это будет черный.

3 голосов
/ 15 апреля 2010

Если вы не знаете, что изменило цвет вашего исчезающего края, возможно, это было применение стиля или темы. Проверьте свой манифест на android:theme="something" в Деятельности. Если тема из группы android.R.style.Theme.Light, край будет белым. По умолчанию android.R.style.Theme и android.R.style.Theme.Black будут иметь черные углы исчезновения. Темы также влияют на другие атрибуты, поэтому проверьте атрибуты полностью, прежде чем добавить их для одной цели.

2 голосов
/ 30 августа 2017

Сделайте это:

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

в значениях \ стилях поставить стиль

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

мне работает ткс!

...