0

我想創建一個自定義PopupMenu(能夠更改文本顏色,背景和圖標)。理想的行爲會像這個GFY(固體資源管理器中獲取):PopupMenu - 自定義主題

https://gfycat.com/JealousMeanHorsefly

enter image description here

你認爲這是一個PopupMenu的或ListPopupWindow?我試圖像here那樣設計PopupMenu,但我只能設法改變背​​景顏色(哦,影子消失了)。 任何想法如何創建這樣一個美麗的對話框?

+1

我將使用ListPopupWindow作爲 – Blackbelt

回答

2

我認爲最好的方法是通過創建自定義對話框然後設置其內容視圖來實現它。

  Dialog d = new Dialog(hostActivity,R.style.customOne); 
      d.setContentView(yourPopupView); 
      d.show(); 

和u需要改變對話的風格,如下

 <style name="customOne" parent="@android:style/Theme.Dialog"> 
    <item name="android:windowFrame">@null</item> 
    <item name="android:windowNoTitle">true</item> 
    <item name="android:windowBackground">@android:color/transparent</item> 
    <item name="android:windowIsFloating">false</item> 
    <item name="android:windowContentOverlay">@null</item> 
    <item name="android:windowSoftInputMode">adjustResize</item> 
    <item name="android:windowCloseOnTouchOutside">false</item> 
    </style> 

希望這將有助於。

0
<item name="android:popupMenuStyle">@style/MyPopupMenu</item> 
<item name="textAppearanceLargePopupMenu">@style/popupText</item> 
<item name="textAppearanceSmallPopupMenu">@style/popupTextSmall</item> 

在您的基本主題中添加上述字段。您可以在下面的樣式中進一步自定義您的文本。

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

<style name="MyPopupMenu" parent="Widget.AppCompat.PopupMenu"> 
    <item name="android:popupBackground">@color/popupbackgroundColor</item> 
</style> 
<style name="popupTextSmall" parent="TextAppearance.AppCompat.Light.Widget.PopupMenu.Small"> 
    <item name="android:textColor">@color/White</item> 
</style> 

也請參閱本answer顯示在彈出

您還可以在工具欄設置PopupTheme圖像。

+0

有幾個問題:1)當我設置''' @ style/MyPopupMenu'''背景顏色不變。 2)'''當我設置 @ style/MyPopupMenu'''背景顏色不會變形,但彈出的陰影消失。 – rafakob