当前位置: 首页 > news >正文

全屏Activity弹出键盘不顶起布局

最近遇到的一个问题是全屏Activity中要求弹出键盘不顶起布局,首先windowSoftInputMode的取值是有多个的,在全屏场景下adjustPan是没有用的,需要使用adjustResize首先确保键盘不顶起布局。

        android:windowSoftInputMode="stateHidden|adjustResize"

但是单纯设置windowSoftInputMode在布局方面又会有新的问题,那就是可能需要在键盘上方展示文本框,但是键盘的高度是不固定的,在全屏场景下布局不被顶起,因此文本框会被键盘遮挡,为解决这个问题,需要在键盘弹起时测量键盘的高度,代码如下

//在键盘弹起的地方对文本库增加addOnGlobalLayoutListener,我xml的布局是ConstraintLayoutbinding.etDiy.viewTreeObserver.addOnGlobalLayoutListener {val rect = Rect()binding.root.getWindowVisibleDisplayFrame(rect)val screenHeight = binding.root.heightval keypadHeight = screenHeight - rect.bottomif (keypadHeight > screenHeight * 0.15) {if (isSet) return@addOnGlobalLayoutListenerisSet = trueval constraintSet = ConstraintSet()constraintSet.clone(binding.root)constraintSet.connect(binding.viewBackground.id,ConstraintSet.BOTTOM,ConstraintSet.PARENT_ID,ConstraintSet.BOTTOM,keypadHeight)constraintSet.applyTo(binding.root)} else {if (!isSet) return@addOnGlobalLayoutListenerisSet = falseval constraintSet = ConstraintSet()constraintSet.clone(binding.root)constraintSet.connect(binding.viewBackground.id,ConstraintSet.BOTTOM,ConstraintSet.PARENT_ID,ConstraintSet.BOTTOM,0)constraintSet.applyTo(binding.root)}}

http://www.lryc.cn/news/164010.html

相关文章:

  • JAVA设计模式详解 解构设计模式思想 详细代码对比
  • lintcode 567 · 最大得分 【动态规划 中等 】
  • qml嵌入到QWidget的两种方式介绍
  • Mysql数据库之常用SQL语句及事务学习总结
  • RuoYi若依管理系统最新版 基于SpringBoot的权限管理系统
  • html实现邮件模版布局-flex布局table布局-demo
  • CENTOS7安装redis在/home/pms/software路径下,并且将redis加入到systemctl中
  • 数据库笔记
  • AI是风口还是泡沫?
  • echarts环图配置
  • Redis优化 RDB AOF持久化
  • 三维模型3DTILE格式轻量化压缩主要技术方法浅析
  • c++day2---9.7
  • 地震反演基础知识2(代码演示)
  • C#学习 - 方法的定义、调用、调试
  • 『PyQt5-Qt Designer篇』| 09 Qt Designer中分割线和间隔如何使用?
  • 基于springboot2+mybatis-plus+jsp增删改查
  • [PHP]empty一直返回true
  • [2023.09.11]: Yew的SSR中的Cargo.toml配置
  • HTTPS加密协议详解:HTTPS性能与优化
  • 9月11日,每日信息差
  • RHCSA-VM-Linux基础配置命令
  • Web安全研究(四)
  • 【CS324】Large Language Models(持续更新)
  • 【学习笔记】「2020-2021 集训队作业」Communication Network
  • 文章参考链接
  • SQLI-labs-第七关
  • 腾讯云轻量2核4G5M服务器_CPU内存_流量_带宽_系统盘
  • 从零开始搭建Apache服务器并使用内网穿透技术实现公网访问
  • unordered_map和unordered_set的使用