Голо быстрый просмотр прокрутки на старых устройствах

О моем приложении

У меня есть приложение, которое имеет голографический вид.

Для устройств с предварительной сотой я просто поддерживал некоторые элементы темы Голо.

Работа с темами, стилями и attrs в порядке для CheckBox, RadioButton …

То, что я пытаюсь сделать

Я использую ListView для отображения большого количества элементов. Я хочу включить быстрый прокрутка в моем ListView, и я хочу, чтобы у него был голой взгляд.

Моя проблема

У меня есть некоторые трудности, связанные с быстрым прокруткой. Подведите его в тему приложения.

То, что я пробовал до сих пор

  1. Ищите библиотеки, которые это делают. HoloEverywhere многообещал, но не справляется с этим.

  2. Пытался сделать это сам:

Я просто добавил эти чертежи:

Введите описание изображения здесьВведите описание изображения здесь

Затем также добавили эту возможность:

<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 не существует заранее сотов .


Надеюсь, вы поможете мне решить эту проблему. 🙂

Обновить :

Похоже, что быстрая поддержка прокрутки была добавлена ​​в HoloEverywhere несколько часов назад:

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

Я проверю это. 🙂

Solutions Collecting From Web of "Голо быстрый просмотр прокрутки на старых устройствах"

Я использую android:fastScrollThumbDrawable но я не знаю, почему он не работает, поэтому поиск в Интернете я нашел здесь жесткое решение, я не знаю, работает ли он на старом 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(); } 

Измените это:

 <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> 

Теперь он должен работать 🙂

С наилучшими пожеланиями

сафари