How do I apply the HoloEverywhere android theme when using ActionBarSherlock?

你。 提交于 2019-12-03 07:25:00

问题


I'm building an application that should work on android 2.3 and I added both ActionBarSherlock and HoloEverywhere libraries.

In order to use ActionBarSherlock I have to use Theme.Sherlock like so :

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

And that's ok.

My main activity is pretty simple : just a ListView with 5 rows (I don't use 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>

Since it's android 2.3, I still have the orange&black theme (except for the ActionBar of course). Now I want to add the HoloEverywhere theme by modifying my manifest like so :

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

BUT that does not change anything... What am I missing ?


回答1:


To enable the Holo theme by default for every ListView I went in the styles.xml file of the HoloEverywhere library then I modified the "ListViewStyle" element by adding this line :

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



回答2:


I had the same issue with ListView's selector. I though that HoloEveruwhere would apply holo selector(blue) by default(I have tried both Theme.HoloEverywhereLight and Theme.HoloEverywhereLight), but it didn't. Maybe I am missing something.

I ended up setting the selector manually:

listView.setSelector(R.drawable.list_selector_holo_light);

You have several drawable resources in the library you can make use of(list_selector_holo_light for example).




回答3:


A portable and correct solution would be to inherit from ListViewStyle and override the attribute, making this in your styles.xml.

If you had HoloEverywhere official library deployed remotely on a server (e.g. Maven repo) you could not depend on it mantaining a change in the styles.xml (you are modifying it for your own needs).



来源:https://stackoverflow.com/questions/11682762/how-do-i-apply-the-holoeverywhere-android-theme-when-using-actionbarsherlock

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!