更改ListView的ScrollBar / FastScroll颜色?

时间:2015-06-01 14:37:42

标签: android android-listview material-design

我的应用程序全部都是橙色主题,但ScrollBar / FastScroll显示为绿色。我试图搜索很多,但无法找到改变它的方法。它只是保持原样。

我找到了一个" android:fastScrollTextColor"属性但改变了泡沫内B的颜色。而且我无法找到任何属性来更改此气泡的颜色或旁边的ScrollBar。

Snapshot

如果它有所作为,我使用我从here获得的自定义PinnedHeaderListView来模仿棒棒糖联系人应用程序中的粘性标题。

3 个答案:

答案 0 :(得分:5)

Scrollbar thumb颜色设置为应用主题中的android:colorAccent属性。你确定这是正确的,对吧?

请注意,如果您使用的是AppCompat,则必须从属性中排除android:前缀。

您可以找到有关可用颜色属性here的更多信息。

答案 1 :(得分:1)

在xml文件的listView属性中设置它。

android:scrollbarSize="10dp"
android:scrollbarThumbVertical="@drawable/custom_scroll_style"

这里custom_scroll_style是drawable文件夹下的xml文件。让我们创建custom_scroll_style.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android" >

<gradient
    android:angle="45"
    android:endColor="@color/endColor" //define what you want
    android:centerColor="@color/centercolor"
    android:startColor="@color/startColor" />

<corners android:radius="8dp" />
<size android:width="4dp"/>
<padding
    android:left="0.5dp"
    android:right="0.5dp" />

</shape>

希望它有所帮助!

答案 2 :(得分:0)

android:scrollbarThumbVertical可以正常使用。但是如果在listView中启用了fastscroll,则应在android:fastScrollThumbDrawable或任何主题中定义AppTheme,并将其用于包含启用了快速滚动的列表视图的活动(在AndroidManifest中)。< / p>

styles.xml的一部分

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:fastScrollThumbDrawable">@drawable/fast_scrollbar_vertical</item>
</style>

清单的一部分

    <activity
        android:name=".ListActivity"
        android:label="@string/title_activity_list"
        android:theme="@style/AppTheme" />

和滚动条drawable应为渐变

<shape xmlns:android="http://schemas.android.com/apk/res/android" >

<gradient
    android:angle="45"
    android:endColor="@color/scroll_color"
    android:centerColor="@color/scroll_color"
    android:startColor="@color/scroll_color" />

<corners android:radius="8dp" />
<size android:width="8dp" android:height="100dp"/>
<padding
    android:left="0.5dp"
    android:right="0.5dp" />

</shape>