android popuwindow点击外部窗口不消失的实例,popuwindow的用法 [复制链接]
来源:互联网 发布:米奥软件 编辑:程序博客网 时间:2024/05/19 08:04
网上大多数都是说如何监听点击外部消失,但我遇到的问题是点击外面不让其消失,如下是我的解决方案,关键是:popupmenu.setbackgrounddrawable(null);popupmenu.setfocusable(false);
popupmenu = new popupwindow(view, keylinearlayout.getwidth(), layoutparams.wrap_content); colordrawable cd = new colordrawable(r.color.white); //popupmenu.setbackgrounddrawable(cd); popupmenu.setbackgrounddrawable(null); popupmenu.setanimationstyle(r.style.animbottom); popupmenu.update(); popupmenu.setinputmethodmode(popupwindow.input_method_needed); popupmenu.settouchable(true); // 设置popupwindow可点击 popupmenu.setoutsidetouchable(false); // 设置popupwindow外部可点击 popupmenu.setfocusable(false); // 获取焦点 popupmenu.settouchinterceptor(new view.ontouchlistener() { @override public boolean ontouch(view v, motionevent event) { // 如果点击了popupwindow的外部,popupwindow也会消失 // 这里如果返回true的话,touch事件将被拦截 // 拦截后 popupwindow的ontouchevent不被调用,这样点击外部区域无法dismiss if (event.getaction() == motionevent.action_outside) { //popupmenu.dismiss(); stationeventcaptain.getinstance().fireeventdatachange( new stationeventdata(istationeventname.hedge_keyborad_dimiss, true)); return true; } return false; } }); //初始化键盘上的数字 initalldig(view); } @override public popupwindow createpupupwindow() { return popupmenu; } @override public void showpopupmenu() { if (popupmenu != null && popupmenu.isshowing()) { popupmenu.dismiss(); stationeventcaptain.getinstance().fireeventdatachange( new stationeventdata(istationeventname.hedge_keyborad_dimiss, true)); } else { //popupmenu.showasdropdown(sourceeditview); int pianyi = dptopx(activity, 8); if (keyboardtype == ipopupmenu.menu_type_hedge_left) { popupmenu.showatlocation(keylinearlayout, gravity.bottom | gravity.left, pianyi, 0); //设置layout在popupwindow中显示的位置 } else if (keyboardtype == ipopupmenu.menu_type_hedge_right) { popupmenu.showatlocation(keylinearlayout, gravity.bottom | gravity.right, pianyi, 0); //设置layout在popupwindow中显示的位置 } else { popupmenu.showatlocation(keylinearlayout, gravity.bottom | gravity.left, 0, 0); //设置layout在popupwindow中显示的位置 } // popupmenu.showasdropdown(sourceview, // math.round(sourceview.getx()), // (int) (sourceview.gety())); } } /** * 将dp转成像素的 * * @param context * @param dp * @return */ static int dptopx(final context context, final float dp) { return (int) (dp * context.getresources().getdisplaymetrics().density); } @override public void destroypopupmenu() { popupmenu.dismiss(); stationeventcaptain.getinstance() .fireeventdatachange(new stationeventdata(istationeventname.hedge_keyborad_dimiss, true)); }
阅读全文
0 0
- android popuwindow点击外部窗口不消失的实例,popuwindow的用法 [复制链接]
- android popuwindow点击外部窗口不消失
- android 5.0 popuwindow 点击外部不消失
- Android popuWindow 点击控件外不消失问题
- Android弹出式窗口PopuWindow的使用
- Popuwindow点击外部控件切换popuwindow——解决点击外部事件不响应问题。
- Android弹出窗口PopuWindow
- android的popuwindow的使用
- popuwindow实例
- PopuWindow用法
- 类似Popuwindow的实现
- PopuWindow的使用
- popuwindow的使用方法
- popuwindow的动画实现
- android----popuwindow的使用,自定义的方式
- popupWindow设置显示和消失的动画 add:如何点击背景或返回键让popuwindow消失
- Android开发之PopuWindow的使用
- 随着然键盘显示与消失的popuwindow
- vue.js移动端配置flexible.js
- while和if的区别
- unity5.4以上www可以设置请求超时时间了
- MAC Docker删除containers/images
- Oracle 11g服务详细介绍及哪些服务是必须开启的?【转】
- android popuwindow点击外部窗口不消失的实例,popuwindow的用法 [复制链接]
- 使用系统的tabbar的字体颜色设置。badge的红色过大设置
- canvas系列教程03-柱状图项目1
- 如何获取手机性能测试数据FPS
- android屏幕亮度调节
- easymybatis——mybatis开发利器
- siebel编程
- Java中String的不可变性和创建String的内存变化
- An overview of gradient descent optimization algorithms