android listview自定义顶部,【Android】自定义listview快速滚动条

在eoe上看到有个贴子通过反射,动态修改FastScroller对象的mThumbDrawable属性来改变快速滑动块的图标,这也不为于一种实现方式,但反射的效率较低。下面将介绍使用Style的方式来自定义图标。

从FastScroller类的init方法中可以得知,mThumbDrawable是通过获取当前Activity主题的android.R.attr.fastScrollThumbDrawable属性赋值,既然是这样的话,我们完全可以自定义一个主题,覆盖android.R.attr.fastScrollThumbDrawable属性对应的Drawable不就搞定了!

1、定义一个主题

@drawable/ic_launcher

2、当前ListView所在Activity应用自定义的主题

android:name="com.example.actionbardemo.MainActivity"

android:label="@string/app_name"

android:theme="@style/ListViewFastScrollThumb" >

3、验证

public class MainActivity extends ListActivity {

private static final int[] ATTRS = new int[] {

android.R.attr.fastScrollThumbDrawable,

};

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

setListAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, Cheeses.sCheeseStrings));

ImageView imageView = (ImageView) findViewById(R.id.fastScrollDrawable);

Theme theme = getTheme();

TypedArray a = theme.obtainStyledAttributes(ATTRS);

Drawable drawable = a.getDrawable(0);

imageView.setBackgroundDrawable(drawable);

}

}

布局:

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/container"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

android:id="@+id/fastScrollDrawable"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

android:id="@android:id/list"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:fastScrollEnabled="true"

/>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值