listview的自定义滚动条

时间:2012-11-05 04:37:34

标签: android listview scrollbar

我有一个任务是为列表视图创建自定义滚动条,据我所知,你可以自定义滚动条的方式在android上非常有限。是否有可能实现完全相同的结果: enter image description here

如果是这样,你能指出一个很好的例子,或者至少告诉我应该研究什么?

[编辑]同样在滚动时,我希望能够使用拇指图标。

4 个答案:

答案 0 :(得分:4)

在活动级别,您可以指定各种属性以指定滚动条。对于给定的滚动条,您可能必须指定scrollbarThumbVerticalscrollbarTrackVertical属性。可自定义属性列表在R.attr中指定。

答案 1 :(得分:3)

在res / styles.xml中创建一个主题:

<style name="CustomTheme" parent="android:Theme">
    <item name="android:scrollbarTrackVertical">@drawable/scroll_track</item>
    <item name="android:scrollbarThumbVertical">@drawable/scroll_thumb</item>
</style>

@drawable/scroll_track@drawable/scroll_thumb必须引用九个修补程序图像或形状绘图。滚动轨迹图像是滚动条的背景。 Scroll thumb负责滚动手柄。然后将主题应用于整个应用程序或AndroidManifest.xml中的活动:

<application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@style/CustomTheme">

你可以像我解释那样制作这张照片,并且可以根据需要将照片放入可绘画中。

答案 2 :(得分:3)

在drawable中创建这两个xml文件

scrollbar_vertical_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="#FF6600"
        android:startColor="#FF6600" />

    <corners android:radius="4dp"/>


</shape>

scrollbar_vertical_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="#FFFFFF"
        android:startColor="#FFFFFF" /> 
    <corners android:radius="4dp" />    
</shape>

在list_view.xml中使用这两个xml文件

list_view.xml

<ListView android:id="@id/android:list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:dividerHeight="1dp"
    android:divider="#FF6600"
    android:listSelector="@drawable/list_selector"
    android:layoutAnimation="@anim/listview_layout_animation"
    android:scrollbarThumbVertical="@drawable/scrollbar_vertical_thumb"
    android:scrollbarTrackVertical="@drawable/scrollbar_vertical_track"
    android:scrollbarSize="3dip"
    android:fastScrollEnabled="true">

答案 3 :(得分:1)

我最后在listview旁边使用了单独的搜索栏。