2015-04-02 70 views
3

工具欄ActionMode似乎忽略了我在棒棒堂前的設備樣式。工具欄ActionMode背景前棒棒糖不起作用

這是我的風格:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="android:windowNoTitle">true</item> 
    <!--We will be using the toolbar so no need to show ActionBar--> 
    <item name="windowActionBar">false</item> 
    <item name="android:windowDrawsSystemBarBackgrounds">true</item> 
    <item name="windowActionModeOverlay">true</item> 

    <item name="android:textColorPrimary">#DD000000</item> 
    <item name="android:textColorSecondary">#8A000000</item> 
    <!-- Set theme colors from http://www.google.com/design/spec/style/color.html#color-color-palette--> 
    <!-- colorPrimary is used for the default action bar background --> 

    <!-- Set AppCompat’s color theming attrs --> 
    <item name="colorPrimary">@color/primary</item> 
    <item name="colorPrimaryDark">@color/secondary</item> 

    <item name="colorAccent">@color/accent</item> 

    <item name="android:actionModeStyle">@style/Widget.ActionMode</item> 
    <item name="android:actionModeBackground">@drawable/toolbar_action_background</item> 
    <item name="android:actionModeCloseDrawable">@drawable/ic_arrow_back_white_24dp</item> 

</style> 

<style name="Widget.ActionMode" parent="@style/Widget.AppCompat.ActionMode"> 
    <item name="android:background">@drawable/toolbar_action_background</item> 
    <item name="android:titleTextStyle">@style/TitleTextStyle</item> 

</style> 

<style name="TitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"> 
    <item name="android:textColor">#fff</item> 
</style> 

而且我的工具欄XML

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/toolbar" 
    android:elevation="4dp" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:minHeight="?attr/actionBarSize" 
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
    android:background="?attr/colorPrimary" /> 

我檢查了這些問題: How to specify dark action mode with my theme Toolbar and Contextual ActionBar with AppCompat-v7 Unable to style action mode when using Toolbar

預期的行爲,工作正常上棒棒糖:

enter image description here

如何它看起來奇巧:

enter image description here

+0

這裏有類似的問題,看我的【答案】(http://stackoverflow.com/questions/29121515/how-to-fix -copy-paste-layout-bug-in-edittext/29123467#29123467),如果有幫助,請投票。 – Harry 2015-04-02 13:37:30

+0

@Harry,你可以看到我已經使用Theme.AppCompat.Light.NoActionBar作爲父主題? – Richard 2015-04-02 14:07:54

+0

發佈您的主佈局。 – Harry 2015-04-02 14:15:12

回答

9

通過指定我的主題展臺的Android namspace並沒有解決:

... 
     <item name="actionModeStyle">@style/ActionMode</item> 
     <item name="android:actionModeStyle">@style/ActionMode</item> 
... 

<style name="ActionMode" parent="Widget.AppCompat.ActionMode"> 
     <item name="android:background">@drawable/toolbar_action_background</item> 
     <item name="background">@drawable/toolbar_action_background</item> 
    </style> 
+1

up-voteed ......但爲什麼會有這種行爲? – chaitanyad 2015-05-29 12:43:47

+1

作品,但仍然是一個謎... – Denny 2016-09-29 15:15:17

0

看看你Toolbar的主題:

app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 

第一style,你沒有給一個名字。你錯過了一些行。那麼,我們假設style沒有name,它的nameToolbarStyle,它有一行<item name="colorPrimary">@color/primary</item>這很重要。然後在您的Toolbar佈局中,將app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"替換爲app:theme="@style/ToolbarStyle"。然後<item name="colorPrimary">@color/primary</item>會着色你的Toolbar的背景。我們現在清楚了嗎?

+0

你能詳細說明一下嗎?你什麼意思? :) – Richard 2015-04-02 09:12:58

+0

@Richard我已經重新編輯我的答案,再看看。 – SilentKnight 2015-04-02 10:57:22

+0

@SilenKnight沒有意義,工具欄上的'app:theme'僅用於其子視圖,例如工具欄中的文本。您的答案不會影響工具欄ActionMode behavour – Richard 2015-04-02 13:07:29

相關問題