随软键盘弹出和收回view(二)

本文介绍了一种改进的软键盘适配方案,通过监听软键盘弹出与收回时的布局变化,动态调整输入框的位置,使其始终位于软键盘上方,提供更好的用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一篇提出了一种软键盘弹出时输入框显示在键盘上的方式,就是设置活动关于软键盘的属性为adjustPan,让软键盘把输入框顶上去。但是这种体验并不是很好,因为输入框上面的内容也都一起被顶了上去。

所以有另一种思路,就是软键盘弹出时输入框布局移动到软键盘上方,这里的移动是通过设置marginBottom实现的。

首先要做到的就是监听软键盘的弹出与回收,这个是通过给活动添加布局改变的监听实现的(在上一篇提到过):

final View view=getWindow().getDecorView();
        view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                Rect rect=new Rect();
                view.getWindowVisibleDisplayFrame(rect);
                int displayHeight=rect.bottom-rect.top;
                int maxHeight=view.getHeight();
                int height=maxHeight-displayHeight;
                if (height<200){
                    min=height;
                }
                if (height!=lastHeight){
                    LinearLayout.LayoutParams params= (LinearLayout.LayoutParams) llEdit.getLayoutParams();
                    params.setMargins(0,0,0,height-min);
                    llEdit.setLayoutParams(params);
                    lastHeight=height;
                }
            }
        });
变量height表示界面被挤压掉的高度,软键盘弹出时可以近似认为是软键盘的高度。但是经过测试就算没有软键盘这个差值height也不是0(这里用min表示),所以设置min来辅助测算marginBottom。

每当软键盘弹出和收回的时候,这个监听方法得到调用,然后用height-min作为输入框布局的marginBottom,就可以做到布局出现在软键盘正上方,并在软键盘收回后沉底。

资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在当今的软件开发领域,自动化构建与发布是提升开发效率项目质量的关键环节。Jenkins Pipeline作为一种强大的自动化工具,能够有效助力Java项目的快速构建、测试及部署。本文将详细介绍如何利用Jenkins Pipeline实现Java项目的自动化构建与发布。 Jenkins Pipeline简介 Jenkins Pipeline是运行在Jenkins上的一套工作流框架,它将原本分散在单个或多个节点上独立运行的任务串联起来,实现复杂流程的编排与可视化。它是Jenkins 2.X的核心特性之一,推动了Jenkins从持续集成(CI)向持续交付(CD)及DevOps的转变。 创建Pipeline项目 要使用Jenkins Pipeline自动化构建发布Java项目,首先需要创建Pipeline项目。具体步骤如下: 登录Jenkins,点击“新建项”,选择“Pipeline”。 输入项目名称描述,点击“确定”。 在Pipeline脚本中定义项目字典、发版脚本预发布脚本。 编写Pipeline脚本 Pipeline脚本是Jenkins Pipeline的核心,用于定义自动化构建发布的流程。以下是一个简单的Pipeline脚本示例: 在上述脚本中,定义了四个阶段:Checkout、Build、Push packageDeploy/Rollback。每个阶段都可以根据实际需求进行配置调整。 通过Jenkins Pipeline自动化构建发布Java项目,可以显著提升开发效率项目质量。借助Pipeline,我们能够轻松实现自动化构建、测试部署,从而提高项目的整体质量可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值