uni-app showToast showLoading 闪屏 黑屏
uni-app showToast showLoading 闪屏 黑屏
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | 11 | HBuilderX |
示例代码:
uni.showToast({
mask: true,
title: this.lang['设备退出中'],
duration:2000,
icon: 'loading'
});
操作步骤:
uni.showToast({
mask: true,
title: this.lang['设备退出中'],
duration:2000,
icon: 'loading'
});
预期结果:
正常loading
实际结果:
正常loading
bug描述:
uni.showToast的icon设置为loading时, 会出现一闪一闪,极个别设备会出现黑屏(荣耀) uni.showLoading也一样,
更多关于uni-app showToast showLoading 闪屏 黑屏的实战教程也可以访问 https://www.itying.com/category-93-b0.html
4 回复
提供一下可以复现问题的示例
更多关于uni-app showToast showLoading 闪屏 黑屏的实战教程也可以访问 https://www.itying.com/category-93-b0.html
a页面跳到b页面 ,去执行uni.showToast({ mask: true, title: this.lang[‘设备退出中’], duration:2000, icon: ‘loading’ });就行了
我的项目比较大,不适合发出来。,上述就会复现的
针对uni-app中showToast和showLoading出现闪屏或黑屏的问题,这通常与底层渲染机制和设备兼容性有关。以下是关键原因和解决方案:
主要原因:
- CSS动画冲突:部分Android设备对CSS动画支持不完善,导致图标渲染异常。
- 渲染层级问题:遮罩层(mask)与图标渲染时序不同步。
- 设备性能差异:低端设备GPU渲染能力不足。
解决方案:
-
调整图标类型:
- 避免使用
icon: 'loading',改用success或none。 - 若需加载动画,可自定义UI组件替代。
- 避免使用
-
优化遮罩层控制:
// 移除mask或设置为false测试 uni.showToast({ mask: false, // 改为false title: '设备退出中', icon: 'none' // 替换图标类型 }); -
使用showLoading的替代方案:
// 改用自定义加载组件 uni.showLoading({ title: '加载中', mask: true // 如仍有问题可关闭 }); // 注意:及时调用hideLoading避免持续遮挡 -
针对荣耀设备:
- 检查系统WebView版本,更新至最新。
- 在
pages.json中全局配置透明背景:"globalStyle": { "backgroundColor": "@backgroundColor" }

