У меня есть scrollview на Android с белым фоном. Затухающий край представляет собой белый полупрозрачный градиент. Я бы хотел изменить его как черный, а не белый. У меня есть ListView в том же проекте с белым фоном, который по умолчанию имеет черный затухающий край, но я не могу найти где (если где угодно), который был установлен.
Как установить цвет затухающего края ScrollView Android?
Ответ 1
Просто выяснилось, пробная версия и ошибка.
Просто установите android:background="@color/yourColor"
для <ScrollView>
. Он задает тень для заданного цвета.
Ответ 2
Если вам нужен другой цвет затухающего края, чем фон, вы должны переопределить метод ScrollView getSolidColor(). Например:
@Override
public int getSolidColor() {
return Color.rgb(0x30, 0x30, 0x30);
}
Ответ 3
Вы можете использовать:
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);
Ответ 4
Вы можете использовать это:
https://github.com/AndroidAlliance/EdgeEffectOverride
Простая чистая и удобная работа!
Ответ 5
EDIT: это не отвечает на вопрос, который запрашивал ScrollView
. Этот ответ работает только на AbsListView
и потомках (включая ListView
).
Цвет затухающего края контролируется атрибутом android:cacheColorHint
.
например:.
<ScrollView android:cacheColorHint="#ff000000" android:background="#ffffffff" />
установите фоновый цвет в белый цвет, а cacheColorHint
используется для рисования цвета затухающего края - в этом случае он будет черным.
Ответ 6
Если вы не знаете, что изменило цвет вашего исчезающего края, это, вероятно, было применение стиля или темы. Проверьте свой манифест на android:theme="something"
в Управлении. Если тема взята из группы android.R.style.Theme.Light
, край будет белым. По умолчанию android.R.style.Theme
и android.R.style.Theme.Black
будут иметь черные края затухания. Темы также влияют на другие атрибуты, поэтому полностью проверяйте атрибуты, прежде чем бросать их для одной вещи.
Ответ 7
Сделайте это:
<ScrollView
android:theme="@style/scrollUpdate"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" >
в значениях \styles помещает стиль
<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>
работает со мной tks!