2017-07-27 1 views
0

auf meinem Haupt-App Thema arbeitet ich:Popup-Menü Textfarbe funktioniert nicht, Hintergrundfarbe fein

<item name="android:popupMenuStyle">@style/MyApp.PopupMenu</item> 
    <item name="android:textAppearanceLargePopupMenu">@style/MyTextAppearanceLargePopupMenu 
    </item> 
    <item name="android:textAppearanceSmallPopupMenu">@style/MyTextAppearanceSmallPopupMenu 
    </item> 

Und ich habe dann

<style name="MyApp.PopupMenu" parent="Base.Widget.AppCompat.PopupMenu"> 
    <item name="android:popupBackground">@color/white</item> 
    <item name="android:textColorPrimary">@color/black</item> 
    <item name="android:textColorSecondary">@color/black</item> 
    <item name="android:textColor">@color/black</item> 
    <item name="android:background">@color/color_white</item> 
    <item name="overlapAnchor">true</item> 
    <item name="android:overlapAnchor">true</item> 
    <item name="android:textAppearanceLargePopupMenu">@style/MyTextAppearanceLargePopupMenu 
    </item> 
    <item name="android:textAppearanceSmallPopupMenu">@style/MyTextAppearanceSmallPopupMenu 
    </item> 
</style> 

<style name="MyTextAppearanceLargePopupMenu" parent="TextAppearance.AppCompat.Widget.PopupMenu.Large"> 
    <item name="android:textColor">@color/black</item> 
</style> 

<style name="MyTextAppearanceSmallPopupMenu" parent="TextAppearance.AppCompat.Widget.PopupMenu.Small"> 
    <item name="android:textColor">@color/black</item> 
</style> 

Aber mein Popup-Menü erscheint mit einem weißen Hintergrund und weiße Buchstaben statt schwarz. Ich habe das getestet, indem ich den Hintergrund änderte und das funktioniert gut.

Also, was mache ich falsch?

Danke.

Bearbeiten: Es herausgefunden, hat meine App Thema <item name="android:textColor">@color/primary_text</item> und das scheint zu überschreiben, was auch immer ich auf Popup-Menü-Stile.

+0

See [diese] (https://stackoverflow.com/a/34233329/1512199) – santalu

+0

ich den Hintergrund nur ändern kann, gut, es ist die Textfarbe, die ich nicht ändern kann. – casolorz

Antwort

0

Hier ist ein Beispiel:

<resources> 

<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
    <item name="popupMenuStyle">@style/PopupStyle</item> 
    <item name="textAppearanceLargePopupMenu">@style/PopupTextAppearanceLarge</item> 
    <item name="textAppearanceSmallPopupMenu">@style/PopupTextAppearanceSmall</item> 
</style> 

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar"> 
    <item name="android:textColorPrimary">@android:color/white</item> 
</style> 

<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light"> 
    <item name="android:colorBackground">#ff00ff</item> 
</style> 

<style name="PopupStyle" parent="Widget.AppCompat.Light.PopupMenu"> 
    <item name="android:popupBackground">#ff00ff</item> 
</style> 

<style name="PopupTextAppearanceLarge" parent="TextAppearance.AppCompat.Light.Widget.PopupMenu.Large"> 
    <item name="android:textColor">#ffff00</item> 
</style> 

<style name="PopupTextAppearanceSmall" parent="TextAppearance.AppCompat.Light.Widget.PopupMenu.Small"> 
    <item name="android:textColor">#ffff00</item> 
</style> 

</resources> 

Toolbar Beispiel:

<android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     android:theme="@style/AppTheme.AppBarOverlay" 
     app:popupTheme="@style/AppTheme.PopupOverlay"/> 
+0

Dieses Beispiel funktioniert nicht für mich, es ändert nicht einmal die Hintergrundfarbe. Damit die Hintergrundfarbe funktioniert, muss ich 'android:' vor 'popupMenuStyle' setzen. – casolorz

+0

Interessant. Sie verwenden das AppCompat-Design richtig? – santalu

+0

'