博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PopupWindow与Edittext结合使用所遇到的坑
阅读量:5746 次
发布时间:2019-06-18

本文共 981 字,大约阅读时间需要 3 分钟。

PopupWindow与Edittext结合使用一起实现目的:既可以编辑输入想要的内容,还可以通过下拉列表来实现内容的选择。

我就是这样的一个目的,结果很简单的目的却遇到了很大的坑,下面我将把我遇到的问题及相应的解决办法分享给大家。

遇到的坑:

1、PopupWindow与Edittext一起使用,PopupWindow抢焦点导致Edittext无法编辑;

2PopupWindow的下拉列表显示出来了,并遮挡了软键盘。造成无法使用软键盘(注意,你没有看错:是下拉列表遮住了软键盘而无法使用键盘输入内容,而不是软键盘挡住下拉列表);

 

解决办法:

1、对于第一个问题的解决办法网上较多,我在这里无法对Edittext进行编辑是因为我在PopupWindow中设置了获取焦点。

即 setFocusable(true);如果在PopupWindow或者PopupWindow的子类(继承PopupWindow的自定义的控件或方法)设置setFocusable(true),那么将会导致Edittext无法编辑。

2、网上一大堆的都是软键盘挡住PopupWindow的下拉列表数据,而很少有PopupWindow的下拉列表挡住软键盘的解决方案。在这里经过多次尝试找到了一个解决方法:

private SpinerPopWindow mSpinerPopWindow;(SpinerPopWindow 继承了PopupWindow,所以可以看作是PopupWindow的使用) /**中间省略好多代码**/ mSpinerPopWindow.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED);mSpinerPopWindow.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
上面代码汇总的红色部分是解决PopupWindow下拉列表挡住软件盘的解决方案,当然这两句代码放在引用PopupWindoww的位置. 上面两个坑是我在开发过程中遇到的问题,耗费了整整一天的时间才得到了解决。这里做出总结希望能对您有所帮助。

转载于:https://www.cnblogs.com/1925yiyi/p/7681642.html

你可能感兴趣的文章
Windows Server 2012新特性:Hyper-V授权管理更简化
查看>>
javascript实现惰性序列之思路和完整代码
查看>>
Linux系统管理工具之sar
查看>>
OSCache 基本使用
查看>>
cowboy源码分析
查看>>
解读分库分表中间件Sharding-JDBC
查看>>
14、安装以太坊Solidity语言编译器
查看>>
安卓图标设计插件
查看>>
数据库基础(SYBASE)
查看>>
测者的测试技术手册:自动化的自动化EvoSuite:Maven项目集成EvoSuite实战
查看>>
深入了解net/http
查看>>
NTFS For Mac 超强兼容性表现在哪些地方
查看>>
【原创】我对IE了解得还是太少了
查看>>
java.lang.IllegalArgumentException
查看>>
提高hive性能的一些hiveql的建议
查看>>
Redis_集群配置
查看>>
阿里云Centos搭建lnmp(php7.2+nginx+mysql5.7)
查看>>
六款堪称神器的网站
查看>>
java面试 --之 java概述与基础知识 (1)
查看>>
JDBC学习之一
查看>>