Android 弹出菜单-自定义主题

Android 弹出菜单-自定义主题,android,android-popupwindow,Android,Android Popupwindow,我想创建一个自定义弹出菜单(能够更改文本颜色、背景和图标)。理想的行为类似于此gfy(取自Solid Explorer): 你认为它是弹出菜单还是列表弹出窗口?我试图设计弹出菜单的样式,但我只改变了背景色(哦,阴影消失了)如何创建如此漂亮的对话框,您有什么想法吗?请查看此库: 它允许您创建自定义弹出/下拉菜单。查看此库: 它允许您创建自定义弹出/下拉菜单。我认为最好的方法是创建自定义对话框,然后设置其内容视图 Dialog d = new Dialog(hostActiv

我想创建一个自定义弹出菜单(能够更改文本颜色、背景和图标)。理想的行为类似于此gfy(取自Solid Explorer):

你认为它是弹出菜单还是列表弹出窗口?我试图设计弹出菜单的样式,但我只改变了背景色(哦,阴影消失了)如何创建如此漂亮的对话框,您有什么想法吗?

请查看此库:

它允许您创建自定义弹出/下拉菜单。

查看此库:


它允许您创建自定义弹出/下拉菜单。

我认为最好的方法是创建自定义对话框,然后设置其内容视图

          Dialog d = new Dialog(hostActivity,R.style.customOne);
          d.setContentView(yourPopupView);
          d.show();
您需要更改对话框的样式,如下所示

     <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>

@空的
真的
@android:彩色/透明
假的
@空的
调整大小
假的

希望这会有所帮助。

我认为最好的方法是通过创建自定义对话框来实现它,然后设置其内容视图

          Dialog d = new Dialog(hostActivity,R.style.customOne);
          d.setContentView(yourPopupView);
          d.show();
<item name="android:popupMenuStyle">@style/MyPopupMenu</item>
<item name="textAppearanceLargePopupMenu">@style/popupText</item>
<item name="textAppearanceSmallPopupMenu">@style/popupTextSmall</item>
您需要更改对话框的样式,如下所示

     <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>

@空的
真的
@android:彩色/透明
假的
@空的
调整大小
假的
希望这能有所帮助。

@style/MyPopupMenu
<item name="android:popupMenuStyle">@style/MyPopupMenu</item>
<item name="textAppearanceLargePopupMenu">@style/popupText</item>
<item name="textAppearanceSmallPopupMenu">@style/popupTextSmall</item>
@风格/流行语 @style/popupTextSmall 在基本主题中添加上述字段。您可以在以下样式中进一步自定义文本

<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>

@颜色/白色
@颜色/PopuBackgroundColor
@颜色/白色
也可参考此项在弹出窗口中显示图像

您还可以在工具栏中设置PopupTheme。

@style/MyPopupMenu
@风格/流行语
@style/popupTextSmall
在基本主题中添加上述字段。您可以在以下样式中进一步自定义文本

<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>

@颜色/白色
@颜色/PopuBackgroundColor
@颜色/白色
也可参考此项在弹出窗口中显示图像


您也可以在工具栏中设置PopupTheme。

我会使用ListPopupWindow,我会使用ListPopupWindow,但有两个问题:1)当我设置
@style/MyPopupMenu时,
背景色不变。2)
当我设置@style/MyPopupMenu时,背景颜色会发生变化,但弹出阴影消失。有两个问题:1)当我设置
@style/MyPopupMenu时,背景颜色没有变化。2) 
当我设置@style/MyPopupMenu时
背景颜色会改变,但弹出阴影消失。