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
        // 键盘隐藏
    }
}
相关推荐
OCN_Yang14 小时前
Android 开发:XML、Flutter、Compose 怎么选?
android
꯭爿꯭巎꯭14 小时前
壁纸引擎安卓版(wallpaper engine安卓版免费下载)
android
阿巴斯甜14 小时前
viewModel
android
问心无愧051314 小时前
ctf show web 入门39
android·前端·笔记
千里马学框架14 小时前
WMS/AMS深入WindowState如何正确找到自己在层级结构树中位置进行挂载
android·wms·ai编程·性能·系统开发·车载开发·framework工程师
6666v614 小时前
深入 Android 统一状态模型:MVI 架构的核心实现
android·kotlin
Digitally14 小时前
能否通过蓝牙从安卓传输文件到 iPhone?6 种替代方法
android·iphone
硬件学长森哥15 小时前
Android影像基础-3A在系统平台中的实现
android·图像处理·计算机视觉
私人珍藏库15 小时前
[Android] 哔哩哔哩第三方安卓电视TVapp BV_0.3.16.r898
android·app·工具·软件·多功能
LuDvei15 小时前
android Build Tools安装API选择AVD模拟器下载及设置等操作
android