先介绍下我的页面:uniapp -> for -> app -> android
四个tabbar中 有一个购物车 .vue开发的,购物车选取规格页面需要挡住 原生tabbar; 因此才用 subNVues来实现。在 subview 中有一个input; 这个input 在 软键盘顶起的时候; 有一定概率会破坏外部的页面;(顶起来之后 回不去了)这就有点尴尬了
官方这么介绍这个问题的:
看样子官方已经知道这里的坑了;
我的解决方案:
通过大量测试发现: 当我的页面配置 adjustResize 属性的时候,被顶出去的情况不就不存在;但是页面体验就不好了;所有呢 动态设置 这个属性;在 subview 显示和隐藏的时候;
"softinputMode": "adjustResize"
这样就能解决掉这个问题了:
onLoad() { //优化 android 软键盘顶起页面的情况 if (uni.getSystemInfoSync().platform === 'android') { const subView = uni.getSubNVueById('CarModifi'); const pages = getCurrentPages(); const page = pages[pages.length - 1]; const currentWebview = page.$getAppWebview(); if (subView && currentWebview) { subView.addEventListener('show', () => { currentWebview.setStyle({ softinputMode: 'adjustResize' }); }) // 设置回来默认状态 subView.addEventListener('hide', () => { currentWebview.setStyle({ softinputMode: 'adjustPan' }); }) } } },
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/217901.html原文链接:https://javaforall.net

