//Kotlin语法
class TestActivity:Activity(){
private var touchEvent: MotionEvent? = null
override fun dispatchTouchEvent(event: MotionEvent?): Boolean {
if (event?.action == MotionEvent.ACTION_DOWN) { //重点1:重写Activity的dispatchTouchEvent方法,保存一下按下的event。
touchEvent = event
}
return super.dispatchTouchEvent(event)
}
private fun showPopupWindow() { //重点2,将PopupWindow显示在window的decorView下,位置为按下的event的rawX和rawY的值。
popupWindow.showAsDropDown(window.decorView, touchEvent?.rawX?.toInt() ?: 0,touchEvent?.rawY?.toInt() ?: 0)
//重点3:今天突然发现使用window.decorView部分手机有适配问题,改为使用自己App的状态栏ToolBar就可以了(一般每个App都有自己的ToolBar或者自定义的ToolBarView之类的吧)。
}
}