Как применить тему HoloEverywhere android при использовании ActionBarSherlock?
Я создаю приложение, которое должно работать на Android 2.3, и я добавил библиотеки ActionBarSherlock и HoloEverywhere.
Чтобы использовать ActionBarSherlock, я должен использовать Theme.Sherlock следующим образом:
<application
...
android:theme="@style/Theme.Sherlock"
... >
И это нормально.
Моя основная деятельность довольно проста: просто ListView с 5 строками (я не использую ListAcivity).
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/menuListView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
Так как у него Android 2.3, у меня все еще есть оранжевая и черная тема (за исключением ActionBar, конечно). Теперь я хочу добавить тему HoloEverywhere, изменив свой манифест так:
<application
...
android:theme="@style/Theme.HoloEverywhereDark.Sherlock"
... >
НО это ничего не меняет... Что мне не хватает?
Ответы
Ответ 1
Чтобы включить тему Holo по умолчанию для каждого ListView, я пошел в файле styles.xml библиотеки HoloEverywhere, после чего я изменил элемент "ListViewStyle", добавив эту строку:
<item name="android:listSelector">@drawable/list_selector_holo_dark</item>
Ответ 2
У меня была такая же проблема с селектором ListView. Я, хотя, что HoloEveruwhere применил бы holo селектор (синий) по умолчанию (я пробовал и Theme.HoloEverywhereLight и Theme.HoloEverywhereLight), но это не так. Может быть, я чего-то не хватает.
Я закончил настройку селектора вручную:
listView.setSelector(R.drawable.list_selector_holo_light);
У вас есть несколько ресурсов, которые можно использовать в библиотеке, которую вы можете использовать (например, list_selector_holo_light).
Ответ 3
Переносимым и правильным решением было бы наследовать от ListViewStyle и переопределять атрибут, делая это в ваших styles.xml.
Если у вас была официальная библиотека HoloEverywhere, размещенная удаленно на сервере (например, Maven repo), вы не могли бы зависеть от нее изменения в файле styles.xml(вы изменяете его для своих собственных нужд).