[小黄书小程序]导航栏和标题栏界面

Posted 天地会珠海分舵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[小黄书小程序]导航栏和标题栏界面相关的知识,希望对你有一定的参考价值。

我们前面几章已经将小黄书的后台基础框架给搭建好了。后台的小黄书相关的业务逻辑,会在往后根据客户端的业务需求来进行实现。

今天起我们会开始小黄书小程序的实现。

我们先看下小红书应用的主界面。

这一篇文章中我们主要是要搞定以下界面的UI呈现:

  • 将最下面的导航栏的界面呈现
  • 最上面的标题栏的界面呈现

这里我们假设您已经做好以下准备,如果没有的话,请自行百度:

  • 已经安装微信web开发者工具: 我们可以在该工具上进行小程序开发和调试,所以对我们来说它更像是个IDE。但,作为IDE来说,它还很不完善,代码编辑起来也很麻烦,所以我建议用Webstorm来做代码开发,但是用微信开发者工具来做调试。
  • 已安装webstorm:我们可以在微信开发者工具中打开项目来进行调试,但是在webstorm中对代码进行开发和编辑。微信开发者工具会监控代码的改动,一旦我们在webstorm中进行代码的修改,保存后小程序将自动显示修改后的内容。
  • 已经注册小程序:我们需要根据小程序的appid来发布和在真实机器的微信上运行我们的小程序。

1. 导航栏界面实现


微信小程序的开发简易教程请查看官网:
https://mp.weixin.qq.com/debug/wxadoc/dev/

看完后我们对小程序的开发流程,以及代码文件的功能和应该有个大概的了解。

1.1. 小程序文件结构和功能简介

每一个小程序页面是由同路径下同名的四个不同后缀文件的组成,比如最上层的四个全局文件:

  • .js后缀的文件是脚本文件:比如在最上层的app.js中,我们可以在这个文件中监听并处理小程序的生命周期函数、声明全局变量、实现页面的业务逻辑

  • .json后缀的文件是配置文件: 比如最上层的app.json 是对整个小程序的全局配置。我们可以在这个文件中配置小程序是由哪些页面组成,配置小程序的窗口背景色,配置导航条样式,配置默认标题。

  • .wxss后缀的是样式表文件: 比如最上层的app.wxss 是整个小程序的公共样式表。我们可以在页面组件的 class 属性上直接使用 app.wxss 中声明的样式规则。

  • .wxml后缀的文件是页面结构文件:最上层的全局配置中不需要这个文件。但是我们每个页面中至少有一个wxml文件,对应的是一个页面的html文件。

1.2. 生成小程序项目

根据官网的流程生成小黄书项目:
https://mp.weixin.qq.com/debug/wxadoc/dev/

微信web开发者工具会为我们生成基本的小程序文件,比如上面提及的:

  • app.json等基本配置文件
  • 同时还是生成两个基本的页面index和 logs。这些我们都不需要用到,所以可以忽略它们。

1.3. 图标准备

参考小红书的操作,导航栏总共有5个tab。其中每个tab都有对应的图标。同时,选中后的图标和没有选中的图标的颜色是不一样的。所以,我们这里需要为每一个标签准备两个形状一样但颜色不同的图标:

  • 灰色:代表没有选中的默认颜色
  • 黄色: 因为我们是小黄书,为了和小红书区别开来,我们小黄书的颜色基调就是黄色

网上有很多提供免费图标的网站,我这里选择的是:
https://icons8.com/
因为这个网站可以让我选中一个图标后快速的修改不同的颜色,然后下载同一个图标不同颜色的版本。

将需要的图标保存到小程序项目的res/icons/目录下面。

往下我们主要是修改app.json文件来配置我们的导航栏

1.4. 页面文件配置

首先,我们需要修改app.json中的pages选项:

接受一个数组,每一项都是字符串,来指定小程序由哪些页面组成。每一项代表对应页面的【路径+文件名】信息,数组的第一项代表小程序的初始页面。小程序中新增/减少页面,都需要对 pages 数组进行修改。

我们的5个页面配置如下:

  "pages": [
    "pages/home/home",
    "pages/search/search",
    "pages/shopping/shopping",
    "pages/messages/messages",
    "pages/about/about"
  ],

分别对应我们导航栏下面看到的5个页面的入口:

  • 首页
  • 发现
  • 购买
  • 消息

这里特别需要注意的是:数组的第一项代表小程序的初始页面。我们在启动小程序的时候会首先进入到这个页面中去。

1.5. 导航栏配置

导航栏主要是通过tabar选项来完成的。

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

tabBar 是一个数组,只能配置最少2个、最多5个 tab,tab 按数组的顺序排序。

tabar可以放在顶部,也可以放在底部。参考小红书,我们会在底部呈现,且只有放在底部我们才能将上面下载的图标等显示出来。

  • 当设置 position 为 top 时,将不会显示 icon

配置如下:

  "tabBar": 
    "selectedColor": "Orange",
    "borderStyle": "grey",
    "backgroundColor": "white",
    "list": [
      
        "pagePath": "pages/home/home",
        "iconPath": "res/icons/home_100px_default.png",
        "selectedIconPath": "res/icons/home_100px_selected.png",
        "text": "首页"
      ,
      
        "pagePath": "pages/search/search",
        "iconPath": "res/icons/search_100px_default.png",
        "selectedIconPath": "res/icons/search_100px_selected.png",
        "text": "发现"
      ,
      
        "pagePath": "pages/shopping/shopping",
        "iconPath": "res/icons/cart_100px_default.png",
        "selectedIconPath": "res/icons/cart_100px_selected.png",
        "text": "购买"
      ,
      
        "pagePath": "pages/messages/messages",
        "iconPath": "res/icons/message_100px_default.png",
        "selectedIconPath": "res/icons/message_100px_selected.png",
        "text": "消息"
      ,
      
        "pagePath": "pages/about/about",
        "iconPath": "res/icons/avatar_100px_default.png",
        "selectedIconPath": "res/icons/avatar_100px_selected.png",
        "text": "我"
      
    ]
  

这里的各项配置的意义我们都可以在官网中很方便的找到:
https://mp.weixin.qq.com/debug/wxadoc/dev/framework/config.html

这里需要提一下的是每个标签的iconPath和selectedIconPath两个配置,分别代表了上面说的:

  • 没有选中时显示的图标: iconPath选项
  • 选中时显示的图标: selectedIconPath选项

到此为止,我们的页面呈现将如下所示:

2. 顶部导航栏配置


顶部导航栏的配置是通过修改windows选项来实现的。

用于设置小程序的状态栏、导航条、标题、窗口背景色。

实现如下:

  "window": 
    "backgroundTextStyle": "light",
    "navigationBarBackgroundColor": "orange",
    "navigationBarTitleText": "小黄书",
    "navigationBarTextStyle": "black"
  ,

呈现效果如下:

3. 结语


详细实现请查看github中的代码。

  • git clone https://github.com/zhubaitian/XiaoHuangShuXiaoChengXu.git
  • cd XiaoHuangShuXiaoChengXu/
  • git checkout CH01

这一系列文章其实我写了有段时间了,后来忙起来忘了发布了😓。


最后想推下我最近发布的一个小程序:三日清单,希望朋友们能多支持。.

以上是关于[小黄书小程序]导航栏和标题栏界面的主要内容,如果未能解决你的问题,请参考以下文章

[小黄书小程序]主页面标签栏水平滑动和下拉弹出框

[小黄书小程序]主页面笔记图片高度自适应及上拉无限加载及下拉更新

[小黄书小程序]微信授权登录

组合标签栏和导航栏控制器出现问题

iOS 7 半透明标签栏和导航栏

8. 小程序标题栏和导航栏设置