当前位置: 首页 > 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)}}

相关文章:

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

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

JAVA设计模式详解 解构设计模式思想 详细代码对比

JAVA设计模式详解 1 简单工厂模式 1 简单工厂模式 设计模式-01简单工厂模式详解 详细代码对比...

lintcode 567 · 最大得分 【动态规划 中等 】

题目 https://www.lintcode.com/problem/567 给定一个矩阵matrix, matrix[i][j]表示你到达第i行第j列可以得到的分数,现在你要用第0行任意一点出发,从每行里找到一个点进行跳跃,每次从(i,j)到(i1,k)跳跃需要消耗∣j−k∣的分数&…...

qml嵌入到QWidget的两种方式介绍

本文介绍qml页面嵌入到QWidget的两种方式,以及这两种方式的区别。 方式1 在 Qt 中,可以使用 QQuickWidget 将 QML 内容嵌入到基于 QWidget 的应用程序中。这是在旧的 QWidget-based 应用程序中逐渐引入 QML UI 的一种常见方式。 以下是如何使用 QQuickWidget 将 QML 内容嵌…...

Mysql数据库之常用SQL语句及事务学习总结

数据库介绍 几个常见的缩写: DB:数据库。全称:DataBase。DBMS:数据库管理系统。全称:DataBase Management System。DBS:数据库系统。全称:DataBase System。DBA:数据库管理员。全称…...

RuoYi若依管理系统最新版 基于SpringBoot的权限管理系统

RuoYi是一个后台管理系统,基于经典技术组合(Spring Boot、Apache Shiro、MyBatis、Thymeleaf)主要目的让开发者注重专注业务,降低技术难度,从而节省人力成本,缩短项目周期,提高软件安全质量。 本…...

html实现邮件模版布局-flex布局table布局-demo

邮件模版布局 flex - 布局简单方便 兼容性差 table - 优点 就是兼容性好&#xff0c;其他没有优点 注&#xff1a;使用图片需要png最好&#xff0c;使用svg图google邮箱会出现不能使用的情况 效果图 flex布局 <!DOCTYPE html> <html lang"en" xmlns:th&qu…...

CENTOS7安装redis在/home/pms/software路径下,并且将redis加入到systemctl中

要将/home/software/redis-stack-server-7.2.0-v0/service/redis.service添加到systemctl系统管理&#xff0c;你可以执行以下步骤&#xff1a; 创建软连接&#xff1a; sudo ln -s /home/software/redis-stack-server-7.2.0-v0/service/redis.service /etc/systemd/system/r…...

数据库笔记

数据库原理及应用 半期考&#xff1a;运筹学&#xff0c;概率论&#xff0c;数据库 文章目录 数据库原理及应用1.课程的考核2.数据库的运用3.数据库学什么&#xff1f; 第一章 绪论1.1数据库系统概述1.1.1基本概念1.1.2数据管理技术的生产和发展人工管理文件系统数据库系统 1.…...

AI是风口还是泡沫?

KlipC报道&#xff1a;狂热的人工智能追捧潮有所冷静&#xff0c;投资者在“上头”的追涨之后&#xff0c;开始回归到对基本面的关注。 KlipC的合伙人Andi D表示&#xff1a;“近日&#xff0c;有关英伟达二季度“破纪录”财报涉嫌造假的话题正在社交媒体和投资者论坛中甚嚣尘上…...

echarts环图配置

echarts环图配置 1、安装echarts npm install echarts4.9.02、页面引入echarts import echarts from echarts;3、应用 template片段 <div class"chart-wrap"><div id "treeChart" style "width: 180px; height:180px;" ><…...

Redis优化 RDB AOF持久化

---------------------- Redis 高可用 ---------------------------------------- 在web服务器中&#xff0c;高可用是指服务器可以正常访问的时间&#xff0c;衡量的标准是在多长时间内可以提供正常服务&#xff08;99.9%、99.99%、99.999%等等&#xff09;。 但是在Redis语境…...

三维模型3DTILE格式轻量化压缩主要技术方法浅析

三维模型3DTILE格式轻量化压缩主要技术方法浅析 三维模型3DTILE格式轻量化压缩主要技术方法浅析 随着三维地理空间数据的应用日益广泛&#xff0c;为了更快速地传输和存储这些大规模数据&#xff0c;3DTile格式的轻量化压缩显得尤为重要。本文将浅析关于三维模型3DTile格式轻量…...

c++day2---9.7

1> 思维导图 2> 封装一个结构体&#xff0c;结构体中包含一个私有数组&#xff0c;用来存放学生的成绩&#xff0c;包含一个私有变量&#xff0c;用来记录学生个数&#xff0c; 提供一个公有成员函数&#xff0c;void setNum(int num)用于设置学生个数 提供一个公有成员…...

地震反演基础知识2(代码演示)

文章目录 数据集代码演示1. SEG盐真实数据2. SEG盐速度模型3. SEG盐模拟地震数据4. SEG盐模拟速度模型5. openfwi地震数据6. openfwi速度模型 数据集代码演示 1. SEG盐真实数据 # 绘制SEG盐层数据的地震图像 def pain_seg_seismic_data(para_seismic_data):Plotting seismic …...

C#学习 - 方法的定义、调用、调试

方法 方法&#xff08;Method&#xff09;是由C/C中的函数&#xff08;Function&#xff09;发展而来的 //C语言 #include <stdio.h> int Add(int x, int y) {return x y; }//函数 int main(void) {int a 4;int b 2;int c Add(a, b);printf("%d %d %d\n&quo…...

『PyQt5-Qt Designer篇』| 09 Qt Designer中分割线和间隔如何使用?

09 Qt Designer中分割线和间隔如何使用? 1 间隔1.1 水平间隔1.2 垂直间隔2 分割线2.1 水平线2.2 垂直线3 保存并执行1 间隔 间隔有水平间隔和垂直间隔: 1.1 水平间隔 拖动4个按钮,并设置为水平布局: 在第一个按钮的右边添加一个水平间隔: 设置其sizeType为Fixed,宽度为20…...

基于springboot2+mybatis-plus+jsp增删改查

概述 编写简单增删改查&#xff0c;理解之后可以自己试着扩展&#xff0c;相信你也可以&#xff0c;加油&#xff0c;我自己懂了的用注释记在下面方便理解 详细 一、需求&#xff08;要做什么&#xff09; 基于现今最流行的技术实现增删改查demo&#xff0c; 便于初学者上手…...

[PHP]empty一直返回true

class Post {public function __get($key){return true;} }$post new Post(); var_dump(empty($post->a));// bool(true) PHP: 重载 - Manual 读取不可访问&#xff08;protected 或 private&#xff09;或不存在的属性的值时&#xff0c;__get() 会被调用。 当对不可访…...

[2023.09.11]: Yew的SSR中的Cargo.toml配置

由于各种原因&#xff0c;我最后还是打算把Yew应用的开发从csr模式转成ssr模式。没想到这里面的水还是挺深的&#xff0c;这里面的Cargo.toml配置包含的信息量之大&#xff0c;着实让我头疼了一番。 Cargo.toml的配置如下 [package] name "app" version "0.…...

【粉丝福利社】三维重建技术与实践:基于NeRF与3DGS

&#x1f48e;【行业认证权威头衔】 ✔ 华为云天团核心成员&#xff1a;特约编辑/云享专家/开发者专家/产品云测专家 ✔ 开发者社区全满贯&#xff1a;CSDN博客&商业化双料专家/阿里云签约作者/腾讯云内容共创官/掘金&亚马逊&51CTO顶级博主 ✔ 技术生态共建先锋&am…...

【claude code agent 实践7】后台任务机制深度解析: 从S02到S08的演进

后台任务机制深度解析 文章目录后台任务机制深度解析&#x1f504; s02 vs s08 核心变化对比&#x1f50d; 新增核心逻辑详解1. BackgroundManager类&#xff08;后台任务管理器&#xff09;2. agent_loop关键变化 - 每次LLM调用前排空队列&#x1f4ca; 后台任务完整工作流程图…...

通过MCP协议集成ChatGPT桌面应用,实现AI助手无缝协作

1. 项目概述与核心价值最近在折腾AI工作流&#xff0c;发现一个痛点&#xff1a;我经常在Claude Desktop或者Cursor这类支持MCP协议的AI助手里面写代码、分析问题&#xff0c;但有时候需要调用ChatGPT的能力&#xff0c;比如让它帮我润色一段英文&#xff0c;或者用它的代码解释…...

DeepSeek Jaeger性能压测实录:单日240亿Span写入下,存储层崩溃前的4.7秒黄金抢救窗口

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;DeepSeek Jaeger链路追踪 DeepSeek Jaeger 是 DeepSeek 系列可观测性工具中专为分布式系统设计的轻量级链路追踪实现&#xff0c;深度兼容 OpenTracing 与 OpenTelemetry 协议&#xff0c;并针对大模型…...

从零到一:51单片机蓝牙遥控车实战指南(附避坑要点)

1. 项目背景与准备 作为一个非硬件专业的爱好者&#xff0c;我第一次接触51单片机时完全是一头雾水。记得当时因为特殊原因在家闲着&#xff0c;突发奇想做个蓝牙遥控车玩玩。没想到这个简单的想法&#xff0c;让我踩遍了新手能遇到的所有坑。现在回头看&#xff0c;其实用51单…...

Python调用MATLAB引擎避坑指南:从安装路径选择到`setup.py` install命令的完整实战

Python调用MATLAB引擎避坑指南&#xff1a;从安装路径选择到setup.py install命令的完整实战 在科学计算和工程仿真领域&#xff0c;MATLAB和Python各有优势。许多开发者希望将两者结合使用&#xff0c;但安装MATLAB引擎到Python环境时常常遇到各种"玄学"问题。本文将…...

如何高效为离线音乐库批量下载同步歌词:LRCGET工具全解析

如何高效为离线音乐库批量下载同步歌词&#xff1a;LRCGET工具全解析 【免费下载链接】lrcget Utility for mass-downloading LRC synced lyrics for your offline music library. 项目地址: https://gitcode.com/gh_mirrors/lr/lrcget 你是否拥有大量本地音乐文件却苦于…...

终极指南:如何通过AKShare金融数据接口库快速获取全球交易所数据

终极指南&#xff1a;如何通过AKShare金融数据接口库快速获取全球交易所数据 【免费下载链接】akshare AKShare is an elegant and simple financial data interface library for Python, built for human beings! 开源财经数据接口库 项目地址: https://gitcode.com/gh_mirr…...

学习如何用CC-Switch + Claude Code 接入 DeepSeek-V4-Pro

1.概述 1.1.关键词 Claude Code&#xff1a;Anthropic 出品的 AI 编程命令行工具。在终端里让 AI 帮你写代码、改 Bug、分析项目。 CC-Switch&#xff1a;开源的图形化配置管理工具。一键切换 Claude Code 背后使用的模型&#xff0c;不用手动改配置文件。 1.2.目的 使用C…...

在Google Cloud上构建OpenAI兼容API网关:无缝对接Vertex AI模型

1. 项目概述&#xff1a;在Google Cloud上搭建你自己的OpenAI兼容API网关 如果你正在寻找一种方法&#xff0c;能够让你手头那些原本为OpenAI ChatGPT设计的应用&#xff0c;无缝对接上Google Cloud Vertex AI的强大模型&#xff0c;比如Gemini Pro、PaLM 2或者Codey&#xff…...