2014-12-06 83 views
1

我在我的應用程序中實現了一個自定義的PopupMenu,並面臨一個難題樣式。AppCompat v21 PopupMenu風格

PopupMenu的創建爲:

public DropDownMenu(Context context, Button button, int menuId, 
         OnMenuItemClickListener listener) { 
     mButton = button; 
     mPopupMenu = new PopupMenu(context, mButton); 
     mMenu = mPopupMenu.getMenu(); 
     mPopupMenu.getMenuInflater().inflate(menuId, mMenu); 
     mPopupMenu.setOnMenuItemClickListener(listener); 
     mButton.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       mPopupMenu.show(); 
      } 
     }); 
    } 

public DropDownMenu addDropDownMenu(Button button, int menuId) { 
    DropDownMenu menu = new DropDownMenu(mContext, button, menuId, this); 
    mMenus.add(menu); 
    return menu; 
} 

在styles.xml我設置:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="popupMenuStyle">@style/PopupMenu</item> 
    <item name="textAppearanceLargePopupMenu">@style/PopupMenu.MenuItemText.Large</item> 
    <item name="textAppearanceSmallPopupMenu">@style/PopupMenu.MenuItemText.Small</item> 
</style> 

<style name="PopupMenu" parent="Widget.AppCompat.PopupMenu"> 
    <item name="android:popupBackground">@color/anybill_blue</item> 
</style> 

我嘗試運用各種樣式和屬性,但無論我做什麼,我總是看到這一點: enter image description here

如何擺脫那些荒謬的不正確的佈局填充?我想這都是關於我錯過了一些重要的風格屬性。

不知道它是否重要,但是當我在API 19代碼中沒有AppCompat lib的情況下使用它時,樣式工作正常。

更新:如果我使用android.support.v7.widget.PopupMenu,則樣式如上所述。如果我使用android.widget.PopupMenu,然後應用無風格可言 - 它總是白色背景和黑色文字,但正確

顯示
+0

你找到這個問題的解決方案?我也有它.. – Sandra 2015-01-15 10:30:43

+0

不幸的不是。我重新設計了UI以擺脫彈出式菜單 – 2015-01-15 11:24:49

回答

1

你可以嘗試添加到您的popupstyle:

<item name="android:popupElevation">0dp</item>