android自定义输入法判断是否在输入状态的问题

这篇博客探讨了在Android中如何在自定义输入法中判断是否处于输入状态,重点讲解了`onEvaluateInputViewShown`方法的使用。
摘要由CSDN通过智能技术生成
工作中遇到一个需要判断输入法是否是在输入的状态的需求,输入法不需要显示在界面。
既然不需要输入法界面,那么让onCreateInputView时返回空。
检查inputmethodservice的API发现InputMethodService中有 onStartInput,showWindow和hideWindow,onFinishInput,onWindowShown,onWindowHidden,isInputViewShown等方法
根据经验判断onWindowShown和onWindowHidden应该是输入法触发输入和隐藏的回调.
实际测试结果
1.onWindowShown没有被调用,onWindowHidden有被调用。
2.showWindow没有被调用,而hideWindow有被调用。
3.在普通edittext中触发输入法onStartInput有被调用,而在网页中触发焦点时onStartInput没调用一次,把焦点移到网页中的空白部分,触发hideWind,再触发网页输入框焦点没有被调用onStartInput,也没调用showWindow
4.isInputViewShown无法是否在输入状态都返回false.
5.onFinishInput方法在输入法隐藏时有被调用。
这样的API太不可靠了。
难道就没有办法了吗?继续从网上下载开源的OpenWnn输入法,发现它的showWindow和hideWindow方法回调非常准确。
把给输入法加上了inp
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值