popupwindow 与 输入法

本文详细介绍了在Android开发中PopupWindow与输入法冲突的问题,包括输入法覆盖PopupWindow和将PopupWindow顶上去的情况,并提供了相应的解决方案。通过设置PopupWindow的softInputMode属性,可以控制输入法的行为,确保PopupWindow的正常显示。

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

有时候popupwindow会被输入法覆盖, 有时候popupwindow会被输入法给顶上去. 而且这个问题还跟theme的windowFullscreen属性相关. 不过这些可以都不用管, 根据项目需求, 可自己设定相关参数.

        /** 输入法将覆盖popupwindow*/
        popupWindow.setSoftInputMode(PopupWindow.INPUT_METHOD_NEEDED);
        popupWindow.setSoftInputMode(android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);

        /** 输入法将把popupwindow顶上去*/
        popupWindow.setSoftInputMode(PopupWindow.INPUT_METHOD_NEEDED);
        popupWindow.setSoftInputMode(android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);


注意代码的顺序. 要先设置 需要输入法, 即 先设置 PopupWindow.INPUT_METHOD_NEEDED,  再设置 输入法会不会导致窗口尺寸有所调整, 即 SOFT_INPUT_ADJUST_NOTHING (不调整popupwindow尺寸)  和  SOFT_INPUT_ADJUST_RESIZE (调整窗口尺寸)

还有其它的一些参数. 可以查看PopupWindow.java & WindowManager.java 这个文件

转载于:https://www.cnblogs.com/emyueguang/p/5076861.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值