Android软键盘监听高度变化,打开关闭,任意View跟随软键盘进行平移

本文介绍如何在Android中监听软键盘的打开和关闭,以及如何处理因软键盘引起的View平移问题。通过setWindowInsetsAnimationCallback在Android 11+实现监听,并使用兼容库处理低版本设备。此外,提供了封装好的库,允许在任意位置监听软键盘高度变化并控制View随软键盘平移。

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

前言:

android上获取对软键盘的处理一直都是个头疼的问题,基本都是通过对view设置addOnGlobalLayoutListener来进行监听,但这个监听有很多问题,比如调用任意view的layout此函数就会进行回调,而且计算高度的时候经常会因为一些状态栏,导航栏的显示造成软键盘高度计算错误的问题。最终这个问题在android 11上得到了解决,可以通过调用setWindowInsetsAnimationCallback设置对系统UI的显示隐藏进行监听。

实现效果:

 

导入依赖:

由于setWindowInsetsAnimationCallback方法在android 11上才出现,对于低版本手机我们该如何处理,google对此进行了兼容,我们需要在项目中添加androidX core的最新版,就可以调用向下兼容的api

    implementation "androidx.core:core:1.5.0-beta02"

创建callback:

首先我们创建类RootViewDeferringInsetsCallback继承自WindowInsetAnimationCompat.Callback同时实现OnAppWindowInsetsListener。

onApplyWindowInsets(此方法属于OnAppWindowInsetsListener)

在此方法中,我们获取到实时变化的windowIn

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值