Android滚动条修改的练习记录

本文介绍了一种通过反射机制替换ListView滚动条图片的方法,并提供了一个具体的示例代码。该方法适用于部分Android版本,如4.0系统,但在5.1系统上可能会遇到一些问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

怎么修改listview的滚动条呢?

可以从freamwork层去修改替换,这样修改是最直观清楚的


在网上看到一达人的ap层方法 

http://m.blog.youkuaiyun.com/blog/weidi1989/8470421


使用反射的方法去进行图片替换实现

        //
        try {
        	Field f = AbsListView.class.getDeclaredField("mFastScroller");
        	f.setAccessible(true);
        	Object o=f.get(statusListView);
        	f=f.getType().getDeclaredField("mThumbDrawable");
        	f.setAccessible(true);
        	Drawable drawable=(Drawable) f.get(o);
        	drawable=getResources().getDrawable(R.drawable.icon);
        	f.set(o,drawable);
        	Toast.makeText(this, f.getType().getName(), 1000).show();
        } catch (Exception e) {
        	throw new RuntimeException(e);
        }
        //

设置属性

    <ListView 
    	android:id="@+id/android:list" 
    	android:fastScrollEnabled="true"
    	android:focusable="true"
    	android:layout_height="wrap_content" 
    	android:layout_width="wrap_content">
    </ListView>


在5.1的系统上,发现执行会出错,类里面的字段变了,查看AbsListView文件,把mFastScroller修改为mFastScroll后,运行没有错误了,但是没有生效,滚动条还是系统默认的滚动条。


这个时候,怀疑是系统变化导致的,

在4.0的系统上测试发现,可以实现滚动条的图片替换




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值