关于我的应用
我有一个具有整体外观的应用程序。
对于蜂窝前设备,我只是向后移植了Holo主题的一些元素。
对于CheckBox,RadioButton,可以使用主题,样式和属性...
我想做什么
我使用ListView显示很多项目。我想在ListView上启用快速滚动,并且希望它具有整体外观。
我的问题
将快速滚动Drawable集成到我的应用主题中时,我遇到了一些困难。
到目前为止我尝试过的
有希望,但不能解决这个问题。
我刚刚添加了这些可绘制对象:
然后还添加了此drawable:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/fastscroll_thumb_pressed_holo" />
<item android:drawable="@drawable/fastscroll_thumb_default_holo" />
</selector>
在我的
attrs.xml
中添加了此代码:<attr name="fastScrollThumbDrawable" format="reference" />
我在
themes.xml
中添加了此代码:<style name="MyTheme">
<item name="fastScrollThumbDrawable">@drawable/fastscroll_thumb_holo</item>
</style>
此主题已在
Manifest.xml
中正确设置为我的应用程序:android:theme="@style/MyTheme"
请记住
android:fastScrollThumbDrawable
doesn't exist pre-honeycomb。希望您能帮我解决这个问题。 :)
更新:
几个小时前,似乎已将快速滚动支持添加到了HoloEverywhere中:
我会检查一下。 :)
最佳答案
我正在使用android:fastScrollThumbDrawable
,但我不知道为什么它不起作用,因此在网络上搜索时发现here是一个硬代码解决方案,我不知道它是否可以像您所需要的那样在旧API上运行,但是在我的情况下,问题已解决。注意我正在使用API 18(例如目标)和带有API 17的设备进行测试。
编码:
try {
Field f = AbsListView.class.getDeclaredField("mFastScroller");
f.setAccessible(true);
Object o = f.get(<<your listView here>>);
f = f.getType().getDeclaredField("mThumbDrawable");
f.setAccessible(true);
Drawable drawable = (Drawable) f.get(o);
drawable = getResources().getDrawable(R.drawable.<<your thumb drawable here can be a selector>>);
f.set(o, drawable);
} catch (Exception e) {
e.printStackTrace();
}
关于android - Holo快速滚动查看旧设备,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14042269/