Intereting Posts
Как показать изображения в режиме просмотра изображений в простом адаптере? Переменное имя пакета с Maven Android Plugin Установка приложения, но не отображаемая в Google Glass после обновления KitKat Android: изменить название в ActionBar из навигационного ящика Получить координаты кнопок и определить, находится ли над ними пальцы – Android Есть ли команда ADB для включения / выключения мобильных данных? (Rooted Device) В чем разница между `Matrix.setRotate` и` Matrix.postRotate` Android View перестает принимать события касания, когда родительские свитки Должен ли я вызвать super () или вызвать этот () для конструкторов пользовательского вида android? Как передавать данные в BroadcastReceiver? «IOException: повторите попытку» при использовании LocalServerSocket Можно ли сбросить профиль оборудования устройства, чтобы создать эквивалентный AVD? Как часто обновлять местоположение gps? Android listView набирает количество пикселей, прокручиваемых Блокировка JavaScript на неактивной вкладке Chrome Chrome

Цвет полосы прокрутки в RecyclerView

Как изменить цвет полосы прокрутки в recyclerView?

У меня есть полоса прокрутки, но я хочу изменить ее цвет. Мой recyclerView выглядит так:

<android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/recyclerView" android:layout_below="@id/my_toolbar" android:layout_above="@+id/progressBar" android:scrollbars="vertical" /> 

Solutions Collecting From Web of "Цвет полосы прокрутки в RecyclerView"

Вы можете сделать это, включив следующую строку кода в Recyclerview

android:scrollbarThumbVertical="@drawable/yoursdrawablefile

Обращаемый файл в моем случае:

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:startColor="#000" android:endColor="#000" android:angle="45"/> <corners android:radius="6dp" /> </shape> 

В случае, если вы хотите еще больше стилизовать свои полосы прокрутки, создайте в своей выпадающей папке два файла с возможностью рисования в виде 1. scrollbar_track и 2. scrollbar_thumb

scrollbar_track.xml

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <gradient android:angle="0" android:endColor="#9BA3C5" android:startColor="#8388A4" /> <corners android:radius="6dp" /> </shape> 

scrollbar_thumb.xml

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <gradient android:angle="0" android:endColor="#b20111" android:startColor="#cf1d2d" /> <corners android:radius="6dp" /> </shape> 

Теперь создайте стиль с именем scrollbar_style в styles.xml как:

 <style name="scrollbar_style"> <item name="android:scrollbarAlwaysDrawVerticalTrack">true</item> <item name="android:scrollbarStyle">outsideOverlay</item> <item name="android:scrollbars">vertical</item> <item name="android:fadeScrollbars">true</item> <item name="android:scrollbarThumbVertical">@drawable/scrollbar_thumb</item> <item name="android:scrollbarTrackVertical">@drawable/scrollbar_track</item> <item name="android:scrollbarSize">8dp</item> <item name="android:scrollbarFadeDuration">800</item> <item name="android:scrollbarDefaultDelayBeforeFade">500</item> </style> 

Наконец, чтобы применить этот стиль к полосе прокрутки в вашем recyclerview, добавьте
style="@style/scrollbar_style"
К вашему recyclerview.

В твоем случае:

 <android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/recyclerView" style="@style/scrollbar_style" android:layout_below="@id/my_toolbar" android:layout_above="@+id/progressBar" android:scrollbars="vertical" /> 

Если вам нужно изменить цвет во время выполнения, это так.

 import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.PorterDuff; import android.graphics.drawable.Drawable; import android.support.annotation.ColorInt; import android.support.v7.widget.RecyclerView; import android.util.AttributeSet; /** * Created on 22.3.2016. * * @author Bojan Kseneman * @description A recycler view that will draw the scroll bar with a different color */ public class CustomScrollBarRecyclerView extends RecyclerView { private int scrollBarColor = Color.RED; public CustomScrollBarRecyclerView(Context context) { super(context); } public CustomScrollBarRecyclerView(Context context, AttributeSet attrs) { super(context, attrs); } public CustomScrollBarRecyclerView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public void setScrollBarColor(@ColorInt int scrollBarColor) { this.scrollBarColor = scrollBarColor; } /** * Called by Android {@link android.view.View#onDrawScrollBars(Canvas)} **/ protected void onDrawHorizontalScrollBar(Canvas canvas, Drawable scrollBar, int l, int t, int r, int b) { scrollBar.setColorFilter(scrollBarColor, PorterDuff.Mode.SRC_ATOP); scrollBar.setBounds(l, t, r, b); scrollBar.draw(canvas); } /** * Called by Android {@link android.view.View#onDrawScrollBars(Canvas)} **/ protected void onDrawVerticalScrollBar(Canvas canvas, Drawable scrollBar, int l, int t, int r, int b) { scrollBar.setColorFilter(scrollBarColor, PorterDuff.Mode.SRC_ATOP); scrollBar.setBounds(l, t, r, b); scrollBar.draw(canvas); } } 

Эти методы определены в классе View, поэтому тот же самый принц должен работать с другими представлениями, такими как ScrollView и ListView.