2015-01-15 3 views
2

Когда я нажимаю элемент во всплывающем меню, его фон TextView остается тем же.Всплывающее меню, выбранное в панели инструментов

экран: http://i.stack.imgur.com/vtrGN.png

Я использую панель инструментов:

<android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="?attr/colorPrimary" 
     android:minHeight="@dimen/actionbar_height" 
     app:popupTheme="@style/PopupMenu" 
     app:theme="@style/Toolbar" /> 

с пользовательской темой для меню:

<style name="Toolbar" parent="ThemeOverlay.AppCompat.Dark.ActionBar"> 
    <item name="colorPrimary">@color/background</item> 
    <item name="android:height">@dimen/actionbar_height</item> 
    <item name="android:actionModeBackground">@color/background</item> 
</style> 

<style name="PopupMenu" parent="ThemeOverlay.AppCompat.Dark"> 
    <item name="android:background">@color/background</item> 
</style> 

Как сделать выбор правильной работы?

+0

И я предполагаю, что вы не можете получить доступ к базовому «TextView»? Если вы можете, просто поместите свой фон в прозрачное значение в любое время. – NitroNbg

+0

@NitroNbg Я не уверен, что это возможно. Я надеюсь, что есть способ решить эту проблему только с помощью xml. – rniski

+0

Если вы используете тему 'ThemeOverlay.AppCompat.Dark.ActionBar', кажется, что вы не можете изменить' popupTheme' через XML. Попробуйте изменить тему на «Свет» и попробуйте еще раз – rsicarelli

ответ

1

У меня была такая же проблема и с проб и ошибок я обнаружил, что с помощью:

<item name="android:colorBackground">@color/background</item> 

вместо

<item name="android:background">@color/background</item> 

Решает проблему для меня, я не знаю, если добиться того же результата, но по крайней мере, не показывает нужный фон.

+0

Я пробовал, но не работал. – Smeet

1

ColorBackground как уже упоминалось ZoserLock не работает для меня или я должен был иметь

<item name="android:background">@color/background</item> 
<item name="android:drawSelectorOnTop">true</item> 

Я также нашел андроида: backgroundTint сделал то же самое в качестве фона.

<item name="android:backgroundTint">@color/background</item> 
<item name="android:drawSelectorOnTop">true</item> 

Примечание: если вы используете свой собственный селектор, используя selectableItemBackground и ваш селектор не является прозрачным drawSelectorOnTop не будет работать, как она будет охватывать текст. Я еще не нашел решение, которым я доволен.

Смежные вопросы