android 解决 Popupwindow不能复制粘贴的问题
来源:互联网 发布:sql on hadoop 编辑:程序博客网 时间:2024/05/18 12:30
开始之前,先说下情况,因为工作原因,不能将一些具体的代码上传,所以只是提供大家解决思路,但是是正确的,已解决,大家可以借鉴
想必做过评论的功能的时候都会用到单独的窗口界面,但是这个界面用 Popupwindow实现起来是很完美的,也很方便,但是有一个问题,就是包含EditText的时候,不能复制粘贴,这是android系统的bug,所有当需要复制粘贴用 Popupwindow就不那么友好了,以下给与解决方案
方案1 : 本人没有试过,觉得太复杂了,在我原有的基础上修改太过于麻烦,这里提供以下地址,需要尝试的也可以看下,这个方案是利用DialogFragment实现,可参考http://blog.csdn.net/elder_sword/article/details/46624429,再次说明下,这种方案我没有试过,有兴趣的童鞋可以尝试
方案2:直接使用Dialog做窗口界面,已实现,在Popupwindow窗口的基础上改成Dialog,Dialog的实现有两点需要注意:
一是不能全屏显示:在设置Dialog的属性时可以设置params.width = LayoutParams.MATCH_PARENT;
二是不能显示软键盘:在设置Dialog的属性值时很重要的一点就是flag这个属性,这个属性默认的是FLAG_NOT_FOCUSABLE,
故名思义不能获取输入焦点,这样就会导致Dialog显示的时候,就算点击EditText也不能调用起来软键盘,大家可能会说
如果强制让EditText获取焦点时并强制调用显示软键盘,如下代码:
if(edit != null){
edit.requestFocus();
InputMethodManager imm = (InputMethodManager) edit.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0, InputMethodManager.SHOW_FORCED);
}
这样的结果会导致软键盘显示在Dialog的背景下面,dialog在软键盘的上面显示,这样结果的原因还是归咎于Dialog并没有获取焦点,所以讲falg属性设置成LayoutParams.FLAG_DIM_BEHIND就能获取焦点了,这时候在强制显示软键盘
就没什么问题了,但是还有一个情况就是params.softInputMode = LayoutParams.SOFT_INPUT_STATE_ALWAYS_
VISIBLE;
//显示dialog的时候,就显示软键盘,
这种情况就可以不主动强制弹起软键盘,在dialog显示的同时也显
示软键盘了,如果该属性值为params.softInputMode = WindowManager.LayoutParams.SOFT_INPUT_ADJUST_R
ESIZE;这时想要dialog显示同时也显示软键盘就需要强制调用弹起软键盘的代码了,具体的Dialog样式可参考连接
http://www.daxueit.com/article/7252.html,受益良多
总结:使用Dialog可以解决复制粘贴问题,Dialog样式可以照提供的链接地址尝试,本人亲测没有问题,至于方案
一并没有试过,感兴趣的同学可以尝试
- android 解决 Popupwindow不能复制粘贴的问题
- 教你如何解决网页不能复制粘贴的问题
- 教您一招解决Word不能复制粘贴问题
- 解决远程桌面不能复制粘贴的方法
- 奇怪的“可以复制 不能粘贴”问题
- PopupWindow中嵌套EditText不能粘贴的问题
- 解决安装MathType后Word不能复制粘贴问题
- 通过ssh远程到服务器,解决vim不能复制粘贴的问题
- 解决mozilla/firefox不能粘贴的问题
- 解决网页不能粘贴的问题
- 解决远程桌面不能使用复制粘贴
- android的复制粘贴
- vs2010不能复制粘贴Bug问题
- ubuntu下CodeBlocks解决运行窗口的复制粘贴问题
- 解决Eclipse复制粘贴出现卡屏的问题
- Mac vmTools解决与Mac间的复制粘贴问题
- 解决eclipse复制粘贴js代码卡死的问题
- ubuntu下解决codeblocks刚装好时终端不能粘贴的问题
- 动态内存分配的大家族
- OpenCV-3.模版匹配
- 985的数学难题
- 10个超棒jQuery表单操作代码片段
- UVA536 Tree Recovery
- android 解决 Popupwindow不能复制粘贴的问题
- Nexus私服搭建
- 动态规划-Dynamic Process
- http协议学习系列(https通信过程)
- opencv之fillpoly
- c++中enum 如何使用
- DirectShow 播放mp4编码 视频
- ios之Windows环境下开发ios环境部署
- 使用 final 的注意事项