android android-actionbar actionbarsherlock android-theme android-holo-everywhere

¿Cómo aplico el tema de Android HoloEverywhere cuando uso ActionBarSherlock?



android-actionbar android-theme (3)

Estoy construyendo una aplicación que debería funcionar en Android 2.3 y agregué las bibliotecas ActionBarSherlock y HoloEverywhere.

Para usar ActionBarSherlock, tengo que usar Theme.Sherlock así:

<application ... android:theme="@style/Theme.Sherlock" ... >

Y eso está bien.

Mi actividad principal es bastante simple: solo un ListView con 5 filas (no uso 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>

Dado que es Android 2.3, todavía tengo el tema naranja y negro (a excepción de la barra de acciones, por supuesto). Ahora quiero agregar el tema HoloEverywhere al modificar mi manifiesto de la siguiente manera:

<application ... android:theme="@style/Theme.HoloEverywhereDark.Sherlock" ... >

PERO eso no cambia nada ... ¿Qué me estoy perdiendo?


Para habilitar el tema Holo de forma predeterminada para cada ListView que fui en el archivo styles.xml de la biblioteca HoloEverywhere, modifiqué el elemento "ListViewStyle" agregando esta línea:

<item name="android:listSelector">@drawable/list_selector_holo_dark</item>


Tuve el mismo problema con el selector de ListView. Pensé que HoloEveruwhere aplicaría holo selector (azul) de forma predeterminada (he intentado tanto Theme.HoloEverywhereLight como Theme.HoloEverywhereLight), pero no fue así. Tal vez me estoy perdiendo algo.

Terminé configurando el selector manualmente:

listView.setSelector(R.drawable.list_selector_holo_light);

Tiene varios recursos dibujables en la biblioteca que puede usar (list_selector_holo_light por ejemplo).


Una solución portátil y correcta sería heredar de ListViewStyle y anular el atributo, haciendo esto en su styles.xml.

Si tuviera la biblioteca oficial de HoloEverywhere implementada de forma remota en un servidor (por ejemplo, Repo Maven), no podría depender de que mantenga un cambio en el archivo styles.xml (lo está modificando para sus propias necesidades).