2015-07-10 67 views
1

我使用内置Android弹出菜单中,但结果是这样的:
enter image description hereandroid - 为什么我的弹出菜单是黑色的?

PopupMenu popupMenu = new PopupMenu(context, holder.menu); 
popupMenu.getMenuInflater().inflate(R.menu.item_menu, popupMenu.getMenu()); 

和item_menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:id="@+id/one" 
     android:title="item1"/> 
    <item 
     android:id="@+id/two" 
     android:title="item2"/> 
    <item 
     android:id="@+id/three" 
     android:title="item3"/> 
</menu> 

,并为主题

<style name="AppTheme" parent="Theme.AppCompat.Light"> 
    <item name="popupMenuStyle">@style/PopupMenu</item> 
</style> 

<style name="PopupMenu" parent="Widget.AppCompat.PopupMenu"> 
    <item name="android:popupBackground">#FFFFFF</item> 
</style> 
样式

回答

1

在values-v14/styles.xml中添加以下内容:

<style name="AppTheme" parent="Theme.AppCompat.Light"> 
    <item name="popupMenuStyle">@style/PopupMenu</item> 
    <item name="android:popupMenuStyle">@style/PopupMenu</item> 
</style> 

而改变的弹出菜单样式:

<style name="PopupMenu" parent="Widget.AppCompat.Light.PopupMenu"> 
    <item name="android:popupBackground">#FFFFFF</item> 
</style> 
+0

I'T没有任何改变,仍是黑色的。 –

+0

为什么它是黑色呢?我的菜单或主题有问题吗?不应该默认为白色?以及为什么文本也是黑色的? –

+0

你有没有试过Widget.AppCompat.Light.PopupMenu? –

1

检查清单文件,它会影响您的意见应用主题...

+0

该应用程序是android:theme =“@ style/AppTheme” –

+0

在所有res/styles文件夹中导航appTheme,并使用灯光主题,您将获得它白色 – NilayDani

+0

我只有一个apptheme声明,什么你的意思是? –

3

可能是Context类型:

家长我的AppTheme是Theme.AppCompat.Light.DarkActionBar,我的活动的父母是AppTheme

// Background = black and textColor = black 
PopupMenu popupMenu = new PopupMenu(getBaseContext() , view); // don't use getBaseContext() 

// Background = black and textColor = white 
PopupMenu popupMenu = new PopupMenu(getApplicationContext() , view); // don't use getApplicationContext() 

,所以你必须只使用活动上下文:

// Background = light and textColor = dark 
PopupMenu popupMenu = new PopupMenu(YourActivity.this , view); // this is ok 
相关问题