## 1.关于自定义导航栏切换闪烁问题
自定义导航栏,在app和小程序端,切换的时候,导航或页面会闪烁一下,客户体验不佳。
解决思路:
**1、使用uniapp的原生导航,在 pages.json 配置文件里,用以下配置替换原来的 tabBar 配置。需要的端使用条件编译判断**。
~~~scss
"tabBar": {
"color": "#999",
"selectedColor": "#000",
"backgroundColor": "#FFFFFF",
"borderStyle": "white",
"list":[{
"pagePath": "pages/index/index",
"iconPath": "static/tabbar/home.png",
"selectedIconPath": "static/tabbar/home-hl.png",
"text": "首页"
},
{
"pagePath": "pages/article/article",
"iconPath": "static/tabbar/article.png",
"selectedIconPath": "static/tabbar/article-hl.png",
"text": "资讯"
},
{
"pagePath": "pages/product/product",
"iconPath": "static/tabbar/image.png",
"selectedIconPath": "static/tabbar/image-hl.png",
"text": "产品"
},
{
"pagePath": "pages/index/my",
"iconPath": "static/tabbar/my.png",
"selectedIconPath": "static/tabbar/my-hl.png",
"text": "我的"
}
]
},
~~~
2、使用uniapp 的原生导航,即在思路1的基础上,调用api`uni.setTabBarItem`重设导航。
更多详细的配置参数见:https://uniapp.dcloud.io/api/ui/tabbar
在 APP.vue 的 onShow 方法里,加上以下配置
~~~javascript
// #ifdef APP-PLUS
let tabbar = this.vuex_config.tabbar;
if(!tabbar){
this.$util.setTabbar(this.vuex_tabbar);
return;
}
let num = 0;
for (let i in tabbar.list) {
try{
let imagepath = await this.$util.image_cache(tabbar.list[i].image);
let selectedImage = await this.$util.image_cache(tabbar.list[i].selectedImage);
tabbar.list[i].image = imagepath;
tabbar.list[i].selectedImage = selectedImage;
num = i;
}catch(e){
console.log(e)
}
}
//全部下载成功使用服务器的导航,否则启用本地备用导航
if((parseInt(num)+1) == tabbar.list.length){
this.$util.setTabbar(tabbar);
}else{
this.$util.setTabbar(this.vuex_tabbar);
}
// #endif
~~~
注意事项说明:
> *\**`目前的 uniapp前端 源码在app端使用的是第二种方法`。代码见`pages.json`和`app.vue`两个文件,使用条件编译区分了。当你需要修改为第一种方案时,比如微信小程序,那需要在`pages.json`加上条件编译`|| MP-WEIXIN`和`\addons\cms\uniapp\components\fa-tabbar\fa-tabbar.vue`这个文件的条件编译也加上`|| MP-WEIXIN`即可!其实就是配置原生的tabbar,去掉自定义的tabbar
> ***若使用自定义导航,把pages.json的tabBar配置和app.vue里的APP端的条件编辑以及`\addons\cms\uniapp\components\fa-tabbar\fa-tabbar.vue`的APP的条件编译代码移除即可。***
>
>
> 如使用思路2,重设的导航,想增加或删除一个导航,需要更改两个地方,
> (一)、在pages.json里的tabbar新增或删除。
> (二)、在后台的移动端样式管理,也需要新增或删除即可。
- 概述
- 安装
- 配置
- 模板
- 标签
- 全局标签
- 文档/文档列表
- 专题/专题列表
- 栏目/栏目列表
- 公共参数
- 单页/单页列表
- 特殊标签
- 栏目列表页
- 分页标签
- 自定义字段
- ThinkPHP5标签
- 自定义表单数据列表
- 自定义过滤条件
- 用户信息
- 模板目录
- API
- 小程序
- 控制器
- Archives.php
- Base.php
- Common.php
- Index.php
- My.php
- User.php
- 准备工作
- 导入项目
- 修改配置
- 测试数据
- 多语言
- 常见问题
- Uniapp版
- 1.准备工作
- 1.HbuilderX安装
- 2.Hbuilder 插件安装
- 2.导入项目
- 3.运行项目
- 1.运行前的配置
- 2.运行为H5
- 3.运行为微信小程序
- 4.运行为APP
- 4.项目发布
- 1.发布H5端
- 2.发布微信小程序
- 3.发布APP
- 5.登录配置
- 6.常见问题
- 1.关于自定义导航栏切换闪烁问题
- 2.关于后台移动端样式预览问题
- 3.关于支付配置的问题
- 4.前端跨域的问题
- 5.关于各端内容分享的问题
- 6.关于签到问题
- 7.关于公众号授权登录问题
- 8.关于底部导航的追加或删除问题
- 9.运行微信小程序,进入微信小程序客户端后,没有底部菜单
- 10.关于首页焦点图的修改
- 11.关于发布小程序代码大小超出的问题
- 12.前端显示空白或白屏或提示网络请求错误的问题
- 13.关于如何在非tabbar配置页面显示tabbar导航
- 14.关于更换资讯页为主页的问题
- 15.关于更新1.4.4版本分包问题
- 16.Tabbar底部高亮显示问题
- 17.微信小程序获取手机号失败
- 18.微信小程序从页面侧滑返回或按键返回时Tabbar丢失的问题
- 19.Tabbar底部不支持外部链接的修复方法
- API文档
- 公共接口(Common)
- 文档接口(Archives)
- 评论接口(Comment)
- 自定义表单(Diyform)
- 短信验证码(Sms)
- 邮箱验证码(Ems)
- 登录/注册(Login)
- 我的接口(My)
- 搜索文档(Search)
- 标签文档(Tag)
- 日志中心(TheLogs)
- 会员中心(User)
- 专题接口(Special)
- 功能解说
- 自动内链
- 自定义表单
- 区块管理
- 栏目管理
- 模型管理
- 伪静态
- Sitemap
- 安全更新