Activity引用的XML样式配置 android:theme="@style/AppBaseTheme"
<style name="AppBaseTheme" parent="AppTheme">
<item name="popupMenuStyle">@style/myPopupMenu</item>
<item name="android:textAppearanceLargePopupMenu">@style/myPopupMenuTextAppearanceLarge
</item>
<item name="android:textAppearanceSmallPopupMenu">@style/myPopupMenuTextAppearanceSmall
</item>
<item name="android:dropDownListViewStyle">@style/MyListViewStyle</item>
</style>
<style name="myPopupMenu" parent="@style/Widget.AppCompat.PopupMenu">
<item name="android:popupBackground">@color/Cyan1</item>
</style>
<style name="myPopupMenuTextAppearanceSmall" parent="@style/TextAppearance.AppCompat.Light.Widget.PopupMenu.Small">
<item name="android:textColor">@android:color/white</item>
<item name="android:textSize">20sp</item>
</style>
<style name="myPopupMenuTextAppearanceLarge" parent="@style/TextAppearance.AppCompat.Light.Widget.PopupMenu.Large">
<item name="android:textColor">@android:color/white</item>
<item name="android:textSize">20sp</item>
</style>
<style name="MyListViewStyle">
<item name="android:divider">@color/Green1</item>
<item name="android:dividerHeight">1px</item>
</style>
color颜色
<color name="Cyan1">#00FFFF</color>
<color name="Green1">#00FF00</color>
Menu布局
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group>
<item
android:id="@+id/vShare"
android:icon="@drawable/icon_logo"
android:title="分享" />
<item
android:id="@+id/vScan"
android:icon="@drawable/icon_logo"
android:title="扫一扫" />
</group>
</menu>
代码实现
/**
* 显示浮动菜单
*/
@SuppressLint("RestrictedApi")
private fun showPopupMenu(view: View) {
val popupMenu = PopupMenu(context!!, vMenu)
getMenuInflater().inflate(R.menu.home_menu, popupMenu.menu)
popupMenu.setOnMenuItemClickListener {
when (it.itemId) {
R.id.vShare -> {
ToastUtils.showLongToast("跳转到分享")
true
}
R.id.vScan -> {
ToastUtils.showLongToast("跳转到扫一扫")
true
}
else -> true
}
}
val menuHelper = MenuPopupHelper(context!!, popupMenu.menu as MenuBuilder, view)
menuHelper.setForceShowIcon(true)//设置显示图标
menuHelper.show()
}