I have an app that has the holo look.
For pre-Honeycomb devices, I just backported some elements of the Holo theme.
Working with themes, styles and attrs is ok for CheckBox, RadioButton ...
I use a ListView to displays a lot of item. I want to enable fast scroll on my ListView and I want it to have the holo look.
I have some difficulties integrating the fast scroll Drawable it into my app theme.
Looking for libraries that does this. HoloEverywhere was promising but doesn't handle that.
Tried to do it myself:
I just added those drawables:
Then also added this 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>
Added this in my attrs.xml
:
<attr name="fastScrollThumbDrawable" format="reference" />
I added this in my themes.xml
:
<style name="MyTheme">
<item name="fastScrollThumbDrawable">@drawable/fastscroll_thumb_holo</item>
</style>
This theme is properly set to my app in the Manifest.xml
:
android:theme="@style/MyTheme"
Keep in mind that android:fastScrollThumbDrawable
doesn't exist pre-honeycomb.
I hope you can help me solve this. :)
Update :
Looks like fast scroll support has been added to HoloEverywhere a few hours ago:
https://github.com/ChristopheVersieux/HoloEverywhere/commit/34561e48339bf6a3e0307d2d35fc4c5ac8409310
I will check that out. :)
I'm using the android:fastScrollThumbDrawable
but I not know why it isn't working, so searching on web i found here a hard code solution, I not know if it works on old API like you need, but in my case was solved the problem. Note I'm using API 18 like target and a device with API 17 to test.
the code:
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();
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With