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
        // 键盘隐藏
    }
}
相关推荐
彬sir哥34 分钟前
android studio如何把.gradle从C盘移到D盘
android·gradle·maven·android studio
、BeYourself2 小时前
TabLayout 与 ViewPager2 的基本使用
android·android-studio
南村群童欺我老无力.2 小时前
Flutter 框架跨平台鸿蒙开发 - 城市文创打卡:探索城市文化创意之旅
android·flutter·华为·harmonyos
Madison-No72 小时前
【Linux】文件操作&&重定向原理
android·linux·运维
2603_949462103 小时前
Flutter for OpenHarmony社团管理App实战:消息中心实现
android·javascript·flutter
andr_gale3 小时前
08_flutter中如何优雅的提前获取child的宽高
android·flutter
踏雪羽翼4 小时前
android 图表实现
android·折线图·弹窗·图表·自定义图标
有位神秘人5 小时前
Android中PopupWindow中如何弹出时让背景变暗
android
TheNextByte15 小时前
iPhone 与Android :有什么区别?
android·cocoa·iphone
_李小白5 小时前
【Android 美颜相机】第二十一天:GPUImageChromaKeyBlendFilter (颜色加深混合滤镜)
android·数码相机