3

AndroidアプリケーションでSherlockActionBarを使用したい。現在、マニフェストでandroid:themeを宣言していません。SherlockActionBarでは、試したものを定義する必要があるため、次のようにします。

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

明らかに、このテーマにより、アプリケーションはDarkActionBarテーマを使用し、その結果、ListView、TextViewsなどが発生します。Theme.Sherlock.Light.DarkActionBarをアプリケーションテーマとして使用する方法はありますが、指定されていない「デフォルト」と統合します。アプリケーションの残りのテーマ?

4

1 に答える 1

4

実際、Theme.Sherlock.Light.DarkActionBarテーマはホロテーマをアクションバーに適用するだけです。Sherlock.Theme以下のAPIの場合からわかるように、次のようになります。

<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>

ActionBar以外にTextViewStyleやその他のスタイルが指定されていないため、テーマを変更する必要はありません。

ご覧のとおり、他のすべてのスタイリングは親テーマによって行われSherlock.__Themeます。そして、このテーマは基本的に11未満のAPIのNoTitleBarテーマです。

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

したがって、これによって他のスタイルが上書きされることはなく、最終的には「デフォルト」のテーマになります。

于 2013-01-05T02:12:06.060 に答える