如何在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"
/>
答案 0 :(得分:45)
您可以通过在Recyclerview
中包含以下代码行来完成此操作 android:scrollbarThumbVertical="@drawable/yoursdrawablefile
我的案例中的drawable文件是:
<?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 :(得分:14)
如果您想进一步设置滚动条的样式,请在drawable文件夹中创建两个可绘制的资源文件,如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>
现在,在styles.xml
文件中创建一个名为 scrollbar_style 的样式:
<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"
/>
答案 2 :(得分:1)
如果您需要在运行时更改颜色,这就是方法。
<=
这些方法是在View类中定义的,因此相同的printcible应该适用于ScrollView和ListView等其他视图。