Подтвердить что ты не робот

Как применить тему 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"
    ...  >

НО это ничего не меняет... Что мне не хватает?

4b9b3361

Ответ 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(вы изменяете его для своих собственных нужд).