Popwindow中弹出软键盘后挡住Pop问题

本文探讨了在Android开发中遇到的Popwindow显示时被弹出的软键盘覆盖的问题,总结了常见解决方案,包括调整布局、使用输入法管理器等策略来确保Popwindow能正确显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     网上查了很多资料,见过最多的两句代码就是:

    pop.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED);
    pop.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

  代码写上了,可是没用啊!相信大部分人跟我现在的情况一样
  后来想想前辈们的实战经验应该不会错,肯定是自己哪里出了问题,捣鼓半天后,还真被我找出来了
  为了避免更多的人像我一样在这里浪费时间,特意注册了账号把经验分享出来

  其中的关键地方的就是Pop所在的Activity中,不能将Activity软键盘的输入方式设置为SOFT_INPUT_ADJUST_RESIZE
  个人理解是如果Activity设置该模式后软键盘弹出就会把Activity的布局往上顶,而不是Pop
  检查下AndroidManifest和Activity代码中是否有如下设置:
  清单文件:
    <activity
      android:name=".PopActivity"
      android:theme="@style/NostatusAppTheme"
      android:windowSoftInputMode="adjustResize|stateHidden"/>
  Activity:
     setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
  
  如果有,把这个设置去掉,再加上最上面那两句关键代码就可以了,对比图
            
	图一			    图二		 	    图三
  
  图一弹出Popwindow 
  图二打开输入法Pop被挡住
  图三打开输入法将Pop顶上去

  参考资料:http://blog.youkuaiyun.com/achellies/article/details/7034756
	 http://blog.youkuaiyun.com/lixiaodaoaaa/article/details/8280039
  

  

  
	


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值