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

微信小程序之tabBar

1、tabBar

        如果小程序是一个多 tab 应用(客户端窗口的底部或顶部有 tab 栏可以切换页面),可以通过 tabBar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页面。

属性类型必填默认值描述
colorHexColortab 上的文字默认颜色,仅支持十六进制颜色
selectedColorHexColortab 上的文字选中时的颜色,仅支持十六进制颜色
backgroundColorHexColortab 的背景色,仅支持十六进制颜色
borderStylestringblacktabbar 上边框的颜色, 仅支持 black / white
listArraytab 的列表,详见 list 属性说明,最少 2 个、最多 5 个 tab

        其中 list 接受一个数组,只能配置最少 2 个、最多 5 个 tab。tab 按数组的顺序排序,每个项都是一个对象,其属性值如下:

属性类型必填说明
pagePathstring页面路径,必须在 pages 中先定义
textstringtab 上按钮文字
iconPathstring图片路径,icon 大小限制为 40kb,建议尺寸为 81px * 81px,不支持网络图片。
当 position 为 top 时,不显示 icon。
selectedIconPathstring选中时的图片路径,icon 大小限制为 40kb,建议尺寸为 81px * 81px,不支持网络图片。
当 position 为 top 时,不显示 icon

在app.json中配置:

 "tabBar": {
    "backgroundColor":"#F12467",

  "list":[
      {
          "text": "首页",
          "pagePath": "pages/navigationBar/navigationBar",
          "iconPath": "/static/icon/home.png",
          "selectedIconPath": "/static/icon/home-fill.png"
      },{
        "text": "我的",
        "pagePath": "pages/test1/test1",
        "iconPath": "/static/icon/user (2).png",
        "selectedIconPath": "/static/icon/user.png"
      }
    ]

图标可以在iconfont-阿里巴巴矢量图标库中获取

2、api中navigate路由接口与组件的关系

urlstring当前小程序内的跳转链接
open-typestring跳转方式 :
合法值说明

navigate

(默认值)

对应 wx.navigateTo 或 wx.navigateToMiniProgram 的功能 
redirect对应 wx.redirectTo 的功能
switchTab对应 wx.switchTab 的功能
reLaunch对应 wx.reLaunch 的功能
navigateBack对应 wx.navigateBack 或 wx.navigateBackMiniProgram (基础库 2.24.4 版本支持)的功能
exit退出小程序,target="miniProgram"时生效

案例1:navigate和reLaunch : 

<navigator url="/pages/showToast/showToast?id=12345&name=lisi"  style="margin-bottom: 20rpx;">
  go to showToast 非tabBar页面
</navigator>
<!--open-type: 跳转方式,不写的话默认是navigate
    reLaunch 和 switchTab都可以进行tabBar页面的跳转,
    但是reLaunch可以携带参数
-->
<navigator url="/pages/wxfor/wxfor?id=12345&name=lisi" open-type="reLaunch">
  go to wxfor tabBar页面
</navigator>

案例2: 点击事件进行页面跳转

tabBar页面的话就用wx.reLaunch(Object object)

非tabBar页面就用wx.navigateTo(Object object),因为reLaunch没有左上角的返回箭头:

                        

<view bind:tap="goNavigate" style="width: 200rpx;height: 200rpx;background: chartreuse;">
    <view>
      <text>
      
      </text>
    </view>

    <view></view>
</view>
  goNavigate(){
    // wx.reLaunch({
    //   url: "/pages/wxfor/wxfor?id=12345&name=lisi"
    // })

    wx.navigateTo({
      url: '/pages/scrollView/scrollView?id=12345&name=lisi',
    })
  },
 案例3:navigateBack() 回到上一个页面  

3、wx.request获取网络请求并渲染页面 

successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

我们先测试一下这段代码的返回结果:

Page({

  /**
   * 页面的初始数据
   */
  data: {
      listArr:[]
  },
 /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
      this.getData();
  },

  getData(){
      wx.request({
        url: 'https://api.thecatapi.com/v1/images/search?limit=2',
        success:res=>{
            console.log(res)
            this.setData({
              listArr:res.data
            })
        }
      })
  },

.wxml:

<view class="out">
  <view class="box" wx:for="{{listArr}}">
      <view class ="pic">
        <image src="{{item.url}}" mode="aspectFill" ></image>
      </view>
      <view class="name">
        姓名是:{{item.id}}
      </view>
  </view>
</view>

.js:

/* pages/wxRequest/wxRequest.wxss */
.out{
  padding:30rpx;
}
.out.box{
  border:20px solid rgb(241, 18, 18);
  width: 100%;
  height: 500rpx;
  margin-bottom: 30rpx;
}
.out .box .pic{
  width: 100%;
  height: 400rpx;
}
.out .box .pic image{
  width: 100%;
  height: 100%;
}
.out .box .name{
  text-align: center;
  line-height: 100rpx;
}


http://www.kler.cn/a/272156.html

相关文章:

  • 使用Websocket进行前后端实时通信
  • Hadoop•搭建完全分布式集群
  • 【重庆市乡镇界】面图层shp格式arcgis数据乡镇名称和编码wgs84坐标无偏移内容测评
  • 我的创作纪念日,纪念我的第512天
  • 2024年美赛C题评委文章及O奖论文解读 | AI工具如何影响数学建模?从评委和O奖论文出发-O奖论文做对了什么?
  • iOS UIScrollView的一个特性
  • LinkedList源码解析和设计思路
  • 强大的开源网络爬虫框架Scrapy的基本介绍(入门级)
  • 在类Unix平台实现TCP客户端
  • linux ---vim的基本使用
  • 单片机第四季-第二课:uCos2源码-BSP
  • ChatGPT :确定性AI源自于确定性数据
  • UGUI界面性能优化2-最大程度降低UI的DrawCall和重绘
  • RabbitMQ——死信队列和延迟队列
  • windows安装go
  • Xcode 15.3 Archive失败
  • PC电脑如何使用HDMI连接小米电视当显示屏
  • 您能以一半的成本构建像ChatGPT这样的大型语言模型吗?
  • ChatGPT提示词方法的原理
  • Selenium-webdriver_manager判断是否已经下载过驱动(复用缓存驱动)
  • 用python写网络爬虫:3.urllib库进一步的使用方法
  • MySQL_数据库图形化界面软件_00000_00001
  • 一个完整的上传文件示例
  • stable diffusion webui 搭建和初步使用
  • 生成式人工智能在金融领域:FinGPT、BloombergGPT及其未来
  • 数学建模-估计出租车的总数