老设备上的全息快速滚动看起来

关于我的应用程序

我有一个应用程序,具有全息的外观。

对于蜂窝前设备,我只是回溯了Holo主题的一些元素。

使用主题,样式和attrs是好的CheckBox,RadioButton …

我正在尝试做什么

我使用ListView来显示很多项目。 我想在我的ListView上启用快速滚动,我希望它具有整体外观。

我的问题

整合快速滚动我有一些困难将其绘制到我的应用程序主题。

到目前为止,我已经尝试过

  1. 寻找这样做的图书馆。 HoloEverywhere是有希望的,但没有处理。

  2. 试图自己做:

我只是添加了这些drawables:

在这里输入图像说明在这里输入图像说明

然后还添加了这个可绘制的:

<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 不存在pre-honeycomb 。


我希望你能帮我解决这个问题。 🙂

更新:

看起来几个小时前HoloEverywhere已经添加了快速滚动支持:

https://github.com/ChristopheVersieux/HoloEverywhere/commit/34561e48339bf6a3e0307d2d35fc4c5ac8409310

我会检查一下。 🙂

我正在使用android:fastScrollThumbDrawable但我不知道为什么它不工作,所以在网上search我在这里find了一个硬代码解决scheme,我不知道它是否适用于你需要的旧API,但在我的情况已经解决了问题。 注意我正在使用API​​ 18,比如目标和带有API 17的设备来testing。

代码:

 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(); } 

改变这个:

 <style name="MyTheme"> <item name="fastScrollThumbDrawable">@drawable/fastscroll_thumb_holo</item> </style> 

像这样的事情,它似乎是你忘记了一个属性:

 <?xml version="1.0" encoding="utf-8"?> <resources> <style name="listviewfastscrollstyle" parent="android:Theme"> <item name="android:fastScrollTrackDrawable">@drawable/fastscroll_thumb_holo</item> <item name="android:fastScrollThumbDrawable">@drawable/fastscroll_thumb_holo</item> </style> </resources> 

现在它应该工作:)

最好的祝福

苹果浏览器