Как установить цвет Android ScrollView Fading Edge?
-
27-09-2019 - |
Вопрос
У меня есть ScrollView Android с белой предпосылкой. Выцветающий край - белый полупрозрачный градиент. Я хотел бы изменить это быть черным вместо белого. У меня есть список просмотров в одном и том же проекте с белой предпосылкой, который имеет черное исчезновение края по умолчанию, но я не могу найти где (если где угодно), который был установлен.
Решение
Просто нашел его по пробным и ошибкам.
Просто установить android:background="@color/yourColor"
для <ScrollView>
. Отказ Это установит тень к данному цвету.
Другие советы
Если вы хотите, чтобы другой цвет выцветал, чем на заднем плане, вы должны переопределить метод getsolidColor () ScrollView. Например:
@Override
public int getSolidColor() {
return Color.rgb(0x30, 0x30, 0x30);
}
Вы можете использовать:
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);
Вы можете использовать это:
https://github.com/androidaliance/edgeeffectoverride.
Простая чистая и работает идеально!
РЕДАКТИРОВАТЬ: Это не отвечает на вопрос, который просил ScrollView
. Отказ Этот ответ работает только на AbsListView
и потомки (в том числе ListView
).
Цвет выцветающего края контролируется android:cacheColorHint
атрибут.
Например:
<ScrollView android:cacheColorHint="#ff000000" android:background="#ffffffff" />
установит фон в белый, а cacheColorHint
Используется для рисования выцветающего края цвета - в этом случае это было бы черным.
Если вы не знаете, что изменил цвет вашего выцветающего края, это было, вероятно, приложение стиля или темы. Проверьте свой манифест для android:theme="something"
в деятельности. Если тема из группы android.R.style.Theme.Light
край будет белым. По умолчанию android.R.style.Theme
а также android.R.style.Theme.Black
будет иметь черные выцветающие края. Темы также влияют на другие атрибуты, поэтому проверьте атрибуты полностью, прежде чем выбросить их на одну вещь.
Сделай это:
<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>
Работает ко мне TKS!