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
        // 键盘隐藏
    }
}
相关推荐
李艺为6 分钟前
Android 16安兔兔分辨率作假显示(非修改TextView方案)
android
·云扬·10 分钟前
MySQL规范建表:从结构设计到性能优化的实践指南
android·mysql·性能优化
Heynchy20 分钟前
ThreadLocal分析简介【Android学习】
android·学习
恋猫de小郭37 分钟前
Flutter 3.38.1 之后,因为某些框架低级错误导致提交 Store 被拒
android·前端·flutter
jzlhll1231 小时前
android ViewModel传参
android
有位神秘人1 小时前
Android最新动态权限申请框架YbPermissions
android
Android-Flutter1 小时前
android compose Switch开关 使用
android·kotlin
鹏程十八少1 小时前
Android 深入剖析Android内存泄漏:ViewPager2与Fragment的生命周期陷阱
android·前端·app
Kapaseker1 小时前
告别 Kotlin 中臃肿的 when 表达式
android·kotlin
2501_916007471 小时前
iOS 自动化上架的工具组合,在多平台环境中实现稳定发布
android·运维·ios·小程序·uni-app·自动化·iphone