android 自定义软键盘的显示和隐藏

复制代码
记一下,以后不用找

在InputMethodService中有这两个方法可以看到软键盘显示状态
复制代码
//软键盘隐藏
override fun onWindowHidden() {
    super.onWindowHidden()
}
复制代码
//软键盘显示
override fun onWindowShown() {
    super.onWindowShown()
}

在activity中可以通过这种方法看到软键盘显示状态

复制代码
view.viewTreeObserver.addOnGlobalLayoutListener {
    // 获取屏幕的高度
    val screenHeight: Int = view.getRootView().getHeight()

    // 获取当前布局的可见高度
    val rect = Rect()
    view.getWindowVisibleDisplayFrame(rect)
    // 计算键盘的高度
    var keyboardHeight = screenHeight - rect.bottom;
    if (keyboardHeight > screenHeight * 0.15) {
        // 键盘显示
        showKeyBoardHeight = keyboardHeight
        if (showKeyBoardHeight - hideKeyBoardHeight > 0) {
        
        }
    } else {
        hideKeyBoardHeight = keyboardHeight
        // 键盘隐藏
    }
}
相关推荐
北京自在科技5 小时前
谷歌 Find Hub 迎来新版本更新
android·安卓
古法安卓11 小时前
Android-休眠唤醒后onLocationChanged没有数据问题排查
android·java·android studio
Htr_14 小时前
Creem 2.0 使用指南:面向 AI 构建时代的资金平台
android·数据库·人工智能·ui·photoshop
wardenlzr15 小时前
车机看门狗(Watchdog)为何会让整机硬重启
android·优化·车机
IT毕设实战小研15 小时前
基于大数据的商场商铺数据分析与可视化的设计与实现
android·java·大数据·django·课程设计
aqi0016 小时前
一文读懂 HarmonyOS 7.0 带来的十大API重要升级
android·华为·harmonyos·鸿蒙·harmony
是店小二呀17 小时前
鸿蒙PC开源移植:CodeLite原生IDE与Remote Agent适配
android·智能手机·远程桌面
不要喷香水17 小时前
00-总览与架构
kotlin·app·档案管理
终端安全笔记17 小时前
iOS 27 给了租赁一个新工具,但它只认受监督的设备
android·网络·安全·ios