关于PopupWindow一些用法
来源:互联网 发布:java protected权限 编辑:程序博客网 时间:2024/06/05 22:52
直接上代码,代码给注释。
private void showPopupWindow() { View contentView = LayoutInflater.from(EarningsActivity.this).inflate(R.layout.view_popupwindow_earning, null); mPopupWindow = new PopupWindow(contentView); // 设置PopupWindow为包裹内容 mPopupWindow.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT); mPopupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT); // 设置响应触摸事件,设置不聚焦 mPopupWindow.setTouchable(true); mPopupWindow.setFocusable(false); // setOutsideTouchable设置生效的前提是setTouchable(true)和setFocusable(false) mPopupWindow.setOutsideTouchable(true); TextView tv1 = (TextView) contentView.findViewById(R.id.pop_yesterday); TextView tv2 = (TextView) contentView.findViewById(R.id.pop_a_week); TextView tv3 = (TextView) contentView.findViewById(R.id.pop_a_month); TextView tv4 = (TextView) contentView.findViewById(R.id.pop_three_month); tv1.setOnClickListener(this); tv2.setOnClickListener(this); tv3.setOnClickListener(this); tv4.setOnClickListener(this); // 设置PopupWindow在某控件的下方 mPopupWindow.showAsDropDown(mLl_menu);}@Overridepublic boolean onTouchEvent(MotionEvent event) { if (mPopupWindow != null && mPopupWindow.isShowing()) { mPopupWindow.dismiss(); } return true;}在设置 PopupWindow 的时候,博主的手机(vivo 吐槽下这个手机的屁事真的多)一直出现一个问题,就是无论点击外部区域还是Back键都无法 dismiss 弹框,网上有说不设置背景就不能响应返回键和点击外部消失(这个博主没有自己尝试过,因为在之前就已经在布局设置好了背景颜色,如果还没有设置背景颜色导致无法响应事件的小伙伴就赶快设置背景颜色吧),最后再设置Activity的onTouchEvent(),就可以成功的点击外部区域 dismiss PopupWindow了。
有的小伙伴可能不知道PopupWindow可以设置在View的下面,也可以设置在View的上面,当我们使用.showAsDropDown();这个方法时候,不妨点进去看一下源码,在这个方法下面还有两个重载的方法,只是传递的参数不同。我们可以用到下面两个的任意一个
showAsDropDown(View anchor, int xoff, int yoff);
orshowAsDropDown(View anchor, int xoff, int yoff, int gravity);可以实现对位置进行设置。
阅读全文
1 0
- 关于PopupWindow一些用法
- 关于PopupWindow一些用法(二)
- 关于Popupwindow的一些理解
- 关于Android的PopupWindow用法
- 关于PopupWindow的一些注意的地方
- 关于使用PopupWindow的一些问题
- PopupWindow用法
- PopupWindow 用法
- PopupWindow用法
- popupwindow用法
- PopupWindow用法
- PopupWindow用法
- PopupWindow用法
- PopupWindow用法
- PopupWindow用法
- PopupWindow用法
- PopupWindow用法
- 关于SqlDataReader一些用法
- tensorflow 学习笔记(4)-basic_example
- 欢迎使用CSDN-markdown编辑器
- 响应式WebUI框架整理
- 朋友的问题:字符串逆置
- webpack2和angular2搭建的项目
- 关于PopupWindow一些用法
- EL隐藏对象
- jobserver 具体参数设置
- ubuntu 16.04 64位安装YouCompleteMe
- js解析URL为对象函数实现
- Anyka云平台调用api
- [SetContextPropertiesRule]{Context} Setting property
- 【接口测试工具】-Postman
- 安卓自定义Toast,调整Toast位置大小等的方法