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
        // 键盘隐藏
    }
}
相关推荐
lkbhua莱克瓦241 小时前
基础-约束
android·开发语言·数据库·笔记·sql·mysql·约束
戴西软件1 小时前
CAxWorks.VPG车辆工程仿真软件:打造新能源汽车安全的“数字防线“
android·大数据·运维·人工智能·安全·低代码·汽车
ljt27249606611 小时前
Compose笔记(六十三)--SegmentedButton
android·笔记·android jetpack
Android系统攻城狮1 小时前
Android ALSA驱动进阶之设置共享内存snd_pcm_lib_mmap_iomem:用法实例(九十九)
android·pcm·音频进阶·alsa驱动·android驱动
ZHANG13HAO1 小时前
Android 13 系统源码定制的保活方案,
android
2501_9462309810 小时前
Cordova&OpenHarmony通知中心实现
android·javascript
csj5011 小时前
安卓基础之《(9)—中级控件(3)文本输入》
android
Elastic 中国社区官方博客12 小时前
Elasticsearch:在 X-mas 吃一些更健康的东西
android·大数据·数据库·人工智能·elasticsearch·搜索引擎·全文检索
2501_9462309813 小时前
Cordova&OpenHarmony提醒管理系统实现
android·javascript
shaominjin12315 小时前
Jetpack Compose 实践入门:从环境搭建到待办列表实现
android