uni-app Android 特有bug:手写tab 进入新页面并弹出键盘,返回tab页就会导致tab消失
uni-app Android 特有bug:手写tab 进入新页面并弹出键盘,返回tab页就会导致tab消失
项目 | 信息 |
---|---|
产品分类 | uniapp/App |
PC开发环境操作系统 | Windows |
PC开发环境操作系统版本号 | 2004 |
HBuilderX类型 | Alpha |
HBuilderX版本号 | 3.1.3 |
手机系统 | Android |
手机系统版本号 | Android 10 |
手机厂商 | 华为 |
手机机型 | 荣耀30 和 红米手机 |
页面类型 | vue |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
示例代码:
RT 都在描述哪里写清楚啦
操作步骤:
RT 都在描述哪里写清楚啦
预期结果:
RT 都在描述哪里写清楚啦
实际结果:
RT 都在描述哪里写清楚啦
bug描述:
以下都是安卓特有的bug , ios端运行良好 , 但是用redirectTo跳转到新页面后 , 点击input还是会小卡顿一下 , 设备iphone12
1问题一
配合视频使用更佳 !!!
- 使用navigateTo跳转 , 新页面打开输入框 , 不隐藏键盘 , 直接点左上角返回 会导致手写的tab栏消失
- 实测进入进新页面后 , 只要弹出了输入法 , 返回后手写的tab栏必定消失
- 消失的原因 , 我给tab加上了border-top: 100px测试后发现 , tab被下压了 , 边框还是能显示部分
//跳转页面
uni.redirectTo({
url: '../chatroom/chatroom?type=main&username=' + JSON.stringify(nameList)
})
// 跳转后的页面
// 视频点击返回的页面
onBackPress() {
uni.hideKeyboard() // 加入了返回前隐藏键盘 , 以为能抢救一下 , 但是并没有什么用
return false
}
问题一的视频链接, 请全屏查看!!! 视频链接
问题二
你说既然用navigateTo跳转不行, 那我就曲线救国用redirectTo, 再通过返回拦截使用redirectTo跳转回到上一个页面 , 页面重新加载了就不存在问题一的tab消失的问题了 , 结果问题二来了
通过redirectTo跳转 input加入了 cursor-spacing:60 在navigateTo下有用, 但redirectTo下无效 , 键盘弹出遮挡input输入框 , 并且隐藏输入法后整块input都被下压下去了 , 有解决思路吗?
//跳转页面
tab_chat() {
uni.redirectTo({url: '../chat/chat'})
},
// 跳转后的页面
// 视频点击返回的页面
onBackPress() {
uni.hideKeyboard() // 还是想抢救一下
if(this.type == 'main') uni.redirectTo({url:'../main/main'})
else uni.reLaunch({url:'../chat/chat'}) // redirectTo / reLaunch 都试过了
return true
}
问题二的视频链接, 请全屏查看!!! 视频链接2
求解决思路
以上问题 , ios端使用体验良好 , 等修复好估计要点时间 , 各位大神大显神通一下呗
更多关于uni-app Android 特有bug:手写tab 进入新页面并弹出键盘,返回tab页就会导致tab消失的实战教程也可以访问 https://www.itying.com/category-93-b0.html
请提供一个完整示例demo我们检测看看
更多关于uni-app Android 特有bug:手写tab 进入新页面并弹出键盘,返回tab页就会导致tab消失的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这个怎么提供呀 , 从整个项目里面提取出来不很费时间吗
能提供页面代码和样式吗?
回复 eachann: 这您看吧 最好提供示例demo。验证问题的优先级会高一些。
这是一个典型的Android键盘弹起导致的布局问题。针对你描述的两个问题,我给出以下解决方案:
问题1(tab栏消失):
- 在页面onShow生命周期中手动重置布局:
onShow() {
setTimeout(() => {
window.scrollTo(0, 0)
}, 100)
}
- 或者在manifest.json中配置softinputMode为"adjustPan":
"app-plus": {
"softinputMode": "adjustPan"
}
问题2(redirectTo跳转后cursor-spacing失效):
- 改用navigateTo跳转,并在页面onUnload中强制隐藏键盘:
onUnload() {
uni.hideKeyboard()
}
- 或者手动调整页面滚动位置:
onReady() {
uni.pageScrollTo({
scrollTop: 0,
duration: 0
})
}
临时解决方案: 可以尝试在tab栏的样式中添加:
position: fixed;
bottom: 0;
z-index: 999;