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
        // 键盘隐藏
    }
}
相关推荐
fetasty8 分钟前
chroot的Linux服务配置-当云服务器真正用起来
android·linux·服务器
Digitally13 分钟前
5 种在安卓手机 / 平板与电脑间同步音乐的方法
android
野生技术架构师24 分钟前
一个简单SQL的深度解析
android·数据库·sql
zh_xuan25 分钟前
Android SharedFlow实现事件总线
android·sharedflow
坏小虎28 分钟前
Expo 快速创建 Android/iOS 应用开发指南
android·ios·rn·expo
csj5028 分钟前
安卓基础之《(27)—真机调试》
android
brahmsjiang30 分钟前
理解Android AOT编译与内存映射:从Zygote启动到页表权限隔离
android·linux·zygote
常利兵33 分钟前
解锁系统设置新姿势:Activity嵌入全解析
android
提子拌饭13338 分钟前
开源鸿蒙跨平台Flutter开发:AR厨艺教学应用
android·flutter·华为·开源·ar·harmonyos·鸿蒙
fengci.1 小时前
php反序列化(复习)(第四章)
android·开发语言·学习·php·android studio