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

uniapp弹出手机键盘,布局被顶飞,导致页面混乱问题

场景:

        在pc端调试一切正常,当进入手机端,实现录入的时候,键盘收起的时候,页面被顶飞。

如下图从左到右的效果:

此时可以看到有两个问题:

        1)软键盘弹出时会挡住输入框,无法正常进行编辑。 

        2)软键盘收起时,页面布局会被软键盘占位,无法变回去。

以下是我的解决方案:

       1.输入框挡住问题:

                在page.json文件中找到该组件所对应的页面,添加下方app-plus中的两个配置。并重启项目。

{"path" : "pages/find/test/test","style" :                                                                                    {"navigationBarTitleText": "页面","enablePullDownRefresh": true,"navigationBarBackgroundColor": "#f8f8f8","navigationStyle": "custom","app-plus": {"softinputMode": "adjustResize","softinputNavBar": "none"}}
},

如下图可以看到,处理过后键盘确实不会被挡住,但是收起软键盘后,布局依旧会被软键盘占位撑起。

        2.软键盘收起时,页面布局会被软键盘占位,无法变回去问题:

                既然是软键盘占位导致布局错乱,那么可以通过限制高度,来防止dom高度被软键盘撑起。

                如下面的代码示例,在被意外撑起的容器(下面的my-dialog)中加入style来设置max-height(值可自行设置),以固定容器。

<!-- 模态框 -->
<view class="test_modal_outter" @touchmove.stop.prevent="moveHandle"><viewclass="test_modal"@tap="hideModal"><view class="my-dialog" @tap.stop="" :style="'max-height:'+(mainHeight + 120)+'px'+'background-color: lightyellow;position: fixed;bottom: 0;left: 0;'"><view class="my-modal" style="padding-bottom: 0;"><view class="head padding-part"><view class="content"><view class="text-part">全部评论({{commentData.count}})</view></view></view><!-- 省略 --></view></view></view>
</view>

高度获取部分js(示例参考代码) 

let sys = uni.getSystemInfoSync();
this.mainHeight =  sys.windowHeight / 1.8;

这样,容器将不会被软键盘撑起。

希望本文会对您有所帮助 ^_^

http://www.xdnf.cn/news/15295.html

相关文章:

  • 使用Pycharm集成开发工具远程调试部署在虚拟机上的flask项目:超级详细的完整指南
  • Rust Web 全栈开发(六):在 Web 项目中使用 MySQL 数据库
  • Transforms
  • 单向链表反转 如何实现
  • JVM的垃圾回收算法和多种GC算法
  • Redis面试精讲 Day 1:Redis核心特性与应用场景
  • Day59
  • JavaWeb(苍穹外卖)--学习笔记05(MD5)
  • 2D转换之缩放scale
  • Cursor创建Spring Boot项目
  • 关于赛灵思的petalinux zynqmp.dtsi文件的理解
  • 网络连接:拨号连接宽带PPPOE
  • 使用 Java 开发大数据应用:Hadoop 与 Java API 的结合
  • Golang 面向对象(封装、继承、多态)
  • Eureka实战
  • Git企业级开发(多人协作)
  • 【设计模式】装饰(器)模式 透明装饰模式与半透明装饰模式
  • Java生产带文字、带边框的二维码
  • Flink创建执行环境的三种方式,也是Flink搭建程序的第一步
  • React 组件中怎么做事件代理?它的原理是什么?
  • MyBatis实现分页查询-苍穹外卖笔记
  • openGauss数据库管理实战指南——基本常用操作总结
  • Sentry 集成
  • 【王树森推荐系统】行为序列02:DIN模型(注意力机制)
  • 【LeetCode453.最小操作次数使数组元素相等】
  • 深入解析C#接口实现的两种核心技术:派生继承 vs 显式实现
  • 论文阅读:HybridTrack: A Hybrid Approach for Robust Multi-Object Tracking
  • 前端开发中的资源缓存详解
  • 面试现场:奇哥扮猪吃老虎,RocketMQ高级原理吊打面试官
  • Spring Ai Alibaba Gateway 实现存量应用转 MCP 工具