1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 【Android】自定义listview快速滚动条

【Android】自定义listview快速滚动条

时间:2020-10-07 22:10:17

相关推荐

【Android】自定义listview快速滚动条

独角兽企业重金招聘Python工程师标准>>>

/xyang81/article/details/17680333

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

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

1、定义一个主题

<stylename="ListViewFastScrollThumb"parent="@android:style/Theme.Light.NoTitleBar.Fullscreen"><itemname="android:fastScrollThumbDrawable">@drawable/ic_launcher</item></style>

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

<activityandroid:name="com.example.actionbardemo.MainActivity"android:label="@string/app_name"android:theme="@style/ListViewFastScrollThumb"><intent-filter><actionandroid:name="android.intent.action.MAIN"/><categoryandroid:name="android.intent.category.LAUNCHER"/></intent-filter></activity>

3、验证

publicclassMainActivityextendsListActivity{privatestaticfinalint[]ATTRS=newint[]{android.R.attr.fastScrollThumbDrawable,};@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);setListAdapter(newArrayAdapter<String>(this,android.R.layout.simple_list_item_1,Cheeses.sCheeseStrings));ImageViewimageView=(ImageView)findViewById(R.id.fastScrollDrawable);Themetheme=getTheme();TypedArraya=theme.obtainStyledAttributes(ATTRS);Drawabledrawable=a.getDrawable(0);imageView.setBackgroundDrawable(drawable);}}

布局:

<LinearLayoutxmlns:android="/apk/res/android"xmlns:tools="/tools"android:id="@+id/container"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><ImageViewandroid:id="@+id/fastScrollDrawable"android:layout_width="wrap_content"android:layout_height="wrap_content"/><ListViewandroid:id="@android:id/list"android:layout_width="match_parent"android:layout_height="match_parent"android:fastScrollEnabled="true"/></LinearLayout>

Demo下载地址:/detail/xyang81/6788411

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。