之前在网上找了很多文章,实现PopupWindow返回键的方式如下:

popupWindow.setFocusable(true);ColorDrawable dw = new ColorDrawable(0x00000000);popupWindow.setBackgroundDrawable(dw);

这样是实现了点击返回键关闭PopupWindow。但是,我们没办法在PopupWindow关闭时做其他你想要的操作。


正确的方法是:

popupView = getLayoutInflater().inflate(R.layout.detail_popupwindow, null);popupView.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {dismissPopupWindow();}});popupView.setFocusable(true);popupView.setFocusableInTouchMode(true);popupView.setOnKeyListener(new View.OnKeyListener() {@Overridepublic boolean onKey(View v, int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK) {dismissPopupWindow();return true;}return false;}});if (popupWindow == null) {popupWindow = new PopupWindow(popupView, LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);popupWindow.setFocusable(true);}if (!popupWindow.isShowing())popupWindow.showAtLocation(view, Gravity.CENTER, 0, 0);

你可以在dismissPopupWindow()里做你想要的动作。






更多相关文章

  1. GitHub 标星 2.5K+!教你通过玩游戏的方式学习 VIM!
  2. Android(安卓)studio App开发 SQLite数据的使用
  3. 避免OOM的一种方式
  4. RxJava学习笔记(Schedulers)
  5. Android(安卓)同一个Service已经启动再多调用startService
  6. android svg资源使用具体操作
  7. Android——按钮操作
  8. android入门篇之ContentProvider学习笔记
  9. Android异步更新UI的方式之使用runOnUiThread(action)方法

随机推荐

  1. Lua学习 1) —— Android调用变量取值与
  2. Lottie 浅析
  3. Android开发工具Android Studio安装教程
  4. Android 10 适配攻略
  5. 深入android数据库操作
  6. 使用Flutter_Boost进行混合开发-Android
  7. 手机侦探 奇迹 (android)
  8. Firefly-RK3288 Android 5.1 HDMI输出4K
  9. 【Android自动化 】那些常见的缩写名词
  10. 更改android 默认语言