简单的监听软键盘缩放的一种方式(不锁定 windowSoftInputMode==adjustPan 才可用)

要达到效果:当软键盘收起,隐藏EditTex控件。

要求页面不能锁定软键盘适配模式为 adjustPan,否则此方案无效

步骤:

1、给外层ViewGoup添加 OnLayoutChangeListener 监听,这个监听会在软键盘展开/收起时触发。

但仅仅这一步并不够,会发现触发总是又一次调用延迟

2、给Activity设置 android:windowSoftInputMode="adjustResize"

这一步使页面在软键盘弹出时缩小高度,而不是默认的被顶上去。当这一行写上时,就可以在 OnLayoutChangeListener 中根据 oldBottom 与 bottom 进行伸缩判断了

我的代码(Kotlin):

rootView.addOnLayoutChangeListener { v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom ->
    if (oldBottom == 0 || bottom == 0) return@addOnLayoutChangeListener
    if (oldBottom - bottom > 300) {
        //开了软键盘

    } else if (bottom - oldBottom > 300) {
        //关了软键盘

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值