3

我想在我的Android應用程序中使用SherlockActionBar。目前,我沒有在清單中聲明android:主題。由於SherlockActionBar要求我定義一個我想:使用沒有默認Android主題的ActionBarSherlock

android:theme="@style/Theme.Sherlock.Light.DarkActionBar" 

顯然,這個主題會導致我的應用程序使用DarkActionBar主題,這將導致同時ListView的,TextViews等是否有使用Theme.Sherlock.Light的方式。 DarkActionBar作爲應用程序主題,但將它與其他應用程序的「默認」,非指定主題集成在一起?

回答

4

實際上Theme.Sherlock.Light.DarkActionBar主題只是將全息主題應用於ActionBar。正如你可以從Sherlock.Theme看到下面的API 11:

<style name="Theme.Sherlock" parent="Sherlock.__Theme"> 
     <!-- Action bar styles (from Theme.Holo) --> 
     <item name="actionDropDownStyle">@style/Widget.Sherlock.Spinner.DropDown.ActionBar</item> 
     <item name="actionButtonStyle">@style/Widget.Sherlock.ActionButton</item> 
     <item name="actionOverflowButtonStyle">@style/Widget.Sherlock.ActionButton.Overflow</item> 
     <item name="actionModeBackground">@drawable/abs__cab_background_top_holo_dark</item> 
     <item name="actionModeSplitBackground">@drawable/abs__cab_background_bottom_holo_dark</item> 
     <item name="actionModeCloseDrawable">@drawable/abs__ic_cab_done_holo_dark</item> 
     <item name="actionBarTabStyle">@style/Widget.Sherlock.ActionBar.TabView</item> 
     <item name="actionBarTabBarStyle">@style/Widget.Sherlock.ActionBar.TabBar</item> 
     <item name="actionBarTabTextStyle">@style/Widget.Sherlock.ActionBar.TabText</item> 
     <item name="actionModeStyle">@style/Widget.Sherlock.ActionMode</item> 
     <item name="actionModeCloseButtonStyle">@style/Widget.Sherlock.ActionButton.CloseMode</item> 
     <item name="actionBarStyle">@style/Widget.Sherlock.ActionBar</item> 
     <item name="actionBarSize">@dimen/abs__action_bar_default_height</item> 
     <!-- Internal --><item name="actionModePopupWindowStyle">@style/Widget.Sherlock.PopupWindow.ActionMode</item> 
     <item name="actionBarWidgetTheme">@null</item> 

     <!-- Action bar styles (defaults from Theme) --> 
     <item name="actionBarSplitStyle">?attr/actionBarStyle</item> 
     <item name="actionMenuTextAppearance">@style/TextAppearance.Sherlock.Widget.ActionBar.Menu</item> 
     <item name="actionMenuTextColor">?attr/textColorPrimary</item> 
     <item name="actionBarDivider">?attr/dividerVertical</item> 
     <item name="actionBarItemBackground">?attr/selectableItemBackground</item> 

     <item name="buttonStyleSmall">@style/Widget.Sherlock.Button.Small</item> 

     <item name="selectableItemBackground">@drawable/abs__item_background_holo_dark</item> 

     <item name="activatedBackgroundIndicator">@drawable/abs__activated_background_holo_dark</item> 
     <item name="actionModeShareDrawable">@drawable/abs__ic_menu_share_holo_dark</item> 
     <item name="activityChooserViewStyle">@style/Widget.Sherlock.ActivityChooserView</item> 

     <item name="homeAsUpIndicator">@drawable/abs__ic_ab_back_holo_dark</item> 

     <item name="dividerVertical">@drawable/abs__list_divider_holo_dark</item> 

     <item name="spinnerDropDownItemStyle">@style/Widget.Sherlock.DropDownItem.Spinner</item> 
     <item name="spinnerItemStyle">@style/Widget.Sherlock.TextView.SpinnerItem</item> 

     <item name="textColorPrimary">@color/abs__primary_text_holo_dark</item> 
     <item name="textColorPrimaryDisableOnly">@color/abs__primary_text_disable_only_holo_dark</item> 
     <item name="textColorPrimaryInverse">@color/abs__primary_text_holo_light</item> 

     <!-- Internal --><item name="dropdownListPreferredItemHeight">48dip</item> 
     <item name="dropDownListViewStyle">@style/Widget.Sherlock.ListView.DropDown</item> 

     <item name="textAppearanceSmall">@style/TextAppearance.Sherlock.Small</item> 
     <item name="textAppearanceLargePopupMenu">@style/TextAppearance.Sherlock.Widget.PopupMenu.Large</item> 
     <item name="textAppearanceSmallPopupMenu">@style/TextAppearance.Sherlock.Widget.PopupMenu.Small</item> 

     <item name="popupMenuStyle">@style/Widget.Sherlock.PopupMenu</item> 
     <!-- Internal --><item name="listPopupWindowStyle">@style/Widget.Sherlock.ListPopupWindow</item> 

     <item name="searchDropdownBackground">@drawable/abs__search_dropdown_dark</item> 
     <item name="searchViewTextField">@drawable/abs__textfield_searchview_holo_dark</item> 
     <item name="searchViewTextFieldRight">@drawable/abs__textfield_searchview_right_holo_dark</item> 
     <item name="searchViewCloseIcon">@drawable/abs__ic_clear</item> 
     <item name="searchViewSearchIcon">@drawable/abs__ic_search</item> 
     <item name="searchViewGoIcon">@drawable/abs__ic_go</item> 
     <item name="searchViewVoiceIcon">@drawable/abs__ic_voice_search</item> 
     <item name="searchAutoCompleteTextView">@style/Widget.Sherlock.SearchAutoCompleteTextView</item> 
     <item name="android:dropDownHintAppearance">@style/TextAppearance.Sherlock.Widget.DropDownHint</item> 

     <item name="windowActionBar">true</item> 
     <item name="windowActionModeOverlay">false</item> 
     <item name="windowContentOverlay">@null</item> 
    </style> 

沒有TextViewStyle或任何其他特定的造型比對動作條的,所以你不需要修改主題。

如您所見,所有其他方式均由父主題Sherlock.__Theme完成。而這個主題基本上是原料藥的NoTitleBar主題低於11

<style name="Sherlock.__Theme" parent="android:Theme.NoTitleBar"> 
     <item name="android:windowContentOverlay">@null</item> 
</style> 

所以這不會覆蓋任何其他樣式,你最終將有「默認」的主題。

+0

我所指的默認主題不是Holo或NoTitleBar主題,它是與您一起使用的主題,根本沒有在清單中指定主題。這有意義嗎? –

+0

重讀我的答案。如果你沒有指定一個主題,你最終會以android:Theme on API <11,Holo on API> = 11,android:Theme.NoTitleBar爲android:Theme,沒有TitleBar(你必須刪除,因爲ActionBar) – Ahmad

+0

好吧,有道理。所以我想我的問題是:有沒有什麼辦法可以在API> = 11中實現類似於android:Theme.NoTitleBar的東西,但沒有太多工作? –

相關問題