0
点赞
收藏
分享

微信扫一扫

【Android】弹出菜单PopupMenu的写法(两种)


弹出菜单PopupMenu的写法,两种

​方法1:​

fun showPopupMenu(view: View?) {
//当前popupMenu显示的相对view的位置
val popupMenu = PopupMenu(this, view!!)
//menu布局
popupMenu.apply {
menuInflater.inflate(R.menu.menu_section1, popupMenu.menu)
//menu的item点击事件
setOnMenuItemClickListener {
"${it.title}".showToast(this@PopMenuActivity)
false
}
//popupmenu关闭事件
setOnDismissListener {
"关闭popupmenu".showToast(this@PopMenuActivity)
}
//显示
show()
}
}

​方法2:​

@SuppressLint("ClickableViewAccessibility")
fun showPopupWindow(view: View?) {
//获取自定义的菜单布局文件
val popupWindowView = layoutInflater.inflate(R.layout.activity_section1_popmenu, null, false)
//创建PopupMenu实例,设置菜单宽度和高度为包裹其自身内容
val popupWindow = PopupWindow(
popupWindowView,
ActionBar.LayoutParams.WRAP_CONTENT,
ActionBar.LayoutParams.WRAP_CONTENT,
true
)
//设置菜单显示在按钮的下面
popupWindow.showAsDropDown(viewBinding.section1PopupmenuBtn2, 0, 0)
//单机其他地方消失
popupWindowView.setOnTouchListener { _, _ ->
//如果菜单存在并且为显示状态,就关闭菜单并初始化菜单
if (popupWindow.isShowing) {
popupWindow.dismiss()
}
false
}
}


举报

相关推荐

0 条评论