Android 开发者从0到1发布一个微信小程序的采坑过程——首页实现
Android 开发者从0到1发布一个微信小程序的采坑过程——详情页实现
Android 开发者从0到1发布一个微信小程序的采坑过程——使用帮助页面
Android 开发者从0到1发布一个微信小程序的采坑过程——发布上线后动态切换页面

需要代码可在文末扫码识别二维码,在我的----关于我—可找到我的联系方式。

实现的效果如下:

分析实现过程

上图中我划出了三个区域

  • 第一个区域是顶部的导航栏颜色和标题
  • 第二个区域是中间的奖类 item
  • 第三个是底部的菜单栏

第一个区域导航栏颜色和标题的实现

  • 背景色

在 app.json 中找到 window 字段,添加以下代码即可:
该字段主要 —— 定义小程序所有页面的顶部背景颜色,文字颜色定义

  "window": {    "backgroundColor": "#FC5A5C",  // 页面背景色    "backgroundTextStyle": "light",  // 下拉 loading 的样式,仅支持 dark / light    "navigationBarBackgroundColor": "#FC5A5C", // 这里就是设置导航栏背景颜色    "navigationBarTextStyle": "white" // 导航栏标题颜色,仅支持 black / white  }

app.json 中各个属性详细介绍参考:
https://developers.weixin.qq.com/miniprogram/dev/quickstart/basic/file.html#json-%E9%85%8D%E7%BD%AE

  • 时间格式化

准确的说应该是当前时间格式化。实现思路如下:

  • 先在 utils 包下的 util 添加 dateLater 方法然后设置导出给外部调用的方法名。
  • 在 首页的 .js 文件下 导入 util.js 文件,然后调用 util.js 中的方法

实现的主要代码如下:

在 util.js 中定义以下方法:/** *  传入 2018-05-11 格式化为 2018年11月11日 周二 格式的时间 *  @param dates 如:2018-11-11 */function dateLater(dates) {  let dateObj = {};  let show_day = new Array('周日', '周一', '周二', '周三', '周四', '周五', '周六');  let date = new Date(dates);  date.setDate(date.getDate());  let day = date.getDay();  let yearDate = date.getFullYear();  let month = ((date.getMonth() + 1) < 10 ? ("0" + (date.getMonth() + 1)) : date.getMonth() + 1);  let dayFormate = (date.getDate() < 10 ? ("0" + date.getDate()) : date.getDate());  dateObj.time = yearDate + '年' + month + '月' + dayFormate + '日';  dateObj.week = show_day[day];  return dateObj;}在 util.js 底部设置导出的方法名:module.exports = {  dateLater: dateLater,}在首页的 js 代码中调用: // 显示标题var new_date = new Date();var year = new_date.getFullYear();var month = new_date.getMonth() + 1;var day = new_date.getDate()var formatDate = year +''+ month +''+ day;console.log('时间:'+formatDate);var infos = utils.strDateFormatToYearMonthDayWeek(formatDate);wx.setNavigationBarTitle({  title: infos,})

我整理了一个时间格式化的工具类,有需要的可以联系我,后期也会公开出来。

第二个区域奖类的实现

分析可知,这是一个网格布局,网格布局显示的内容是从上到下显示文本,在对应的开奖日期,左上角会显示开奖的角标。由于这里的数据服务器返回都是静态的,为了减少和服务器交互,我就在本地将数据写死了。

数据在 data 包里面的 api.js 文件里面var data = [    {      lottery_id: 'ssq',      lottery_name: '双色球',      lottery_type_id: '1',      remarks: '每周二、四、日开奖',      show_bubble: show_bubble_ssq    },    {      lottery_id: 'qxc',      lottery_name: '七星彩',      lottery_type_id: '2',      remarks: '每周二、五、日开奖',      show_bubble: show_bubble_qxc    },     {      lottery_id: 'dlt',      lottery_name: '超级大乐透',      lottery_type_id: '2',      remarks: '每周一、三、六开奖',      show_bubble: show_bubble_dlt    },    {      lottery_id: 'qlc',      lottery_name: '七乐彩',      lottery_type_id: '1',      remarks: '每周一、三、五开奖',      show_bubble: show_bubble_qlc    },    {      lottery_id: 'fcsd',      lottery_name: '福彩3D',      lottery_type_id: '1',      remarks: '每日开奖',      show_bubble: show_bubble_fc    },    {      lottery_id: 'pls',      lottery_name: '排列三',      lottery_type_id: '2',      remarks: '每日开奖',      show_bubble: show_bubble_pls    },    {      lottery_id: 'plw',      lottery_name: '排列五',      lottery_type_id: '2',      remarks: '每日开奖',      show_bubble: show_bubble_plw    }];//对外提供接口  需要暴露在外面才能调用module.exports = {  getLotteryTypeUrl: getLotteryTypeUrl,// getLotteryTypeUrl 是获取奖分类的方法,如果要显示角标上面的数据还需要添加上日期的判断}

数据定义好之后,就开始设计页面了,先将静态的布局绘制出来,然后在动态填充数据。

代码结构如下:按照顺序来,先实现第一个也就是每个小的 item,然后再实现第二个,也就是网格布局,最后再实现第三步的整合

这其中实现的难点在于 template 模板的使用以及模板见数据的传递和展示,样式上的难点在于左上角的角标,其他都不算难实现。

第三个区域菜单栏的实现

使用 小程序提供的 tabbar 可实现,tabBar 的作用如下:

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

文档地址如下

主要代码如下:

 "tabBar": {    "selectedColor": "#FC5A5C", // tab 上的文字选中时的颜色    "backgroungColor": "#F7AF41", // tab 的背景色    "borderStyle": "white", // tabbar上边框的颜色, 仅支持 black / white    "list": [ //tab 的列表,最少2个、最多5个 tab      {        "pagePath": "pages/lottery/lottery", // 页面路径,必须在 pages 中先定义        "text": "首页", // tab 上按钮文字        "iconPath": "images/bar/home_un_select.png", // 图片路径        "selectedIconPath": "images/bar/home_select.png" // 选中的图片路径      },      {        "pagePath": "pages/mine/mine",        "text": "我的",        "iconPath": "images/bar/mine_un_select.png",        "selectedIconPath": "images/bar/mine_select.png"      }    ]  }

欢迎老铁扫码体验一波(目前扫码出现可能是查快递页面,这是个人开发者绕过上线提交的页面,12月份会改为查开奖页面)

更多相关文章

  1. Android(安卓)Studio 使用jni
  2. ionic 中切换平台以实现android中使用的是ios的样式
  3. Android中的服务(service)详解(三)--远程服务(remote)
  4. android 新浪微博客户端的表情功能的实现
  5. Android(安卓)模仿QQ抢红包 listView实现
  6. Android使用Sensor感应器实现线程中刷新UI创建android测力计的功
  7. Android实现远程控制PC(Android[客户端]+Qt[服务器端])
  8. android 新浪微博客户端的表情功能的实现
  9. 浅谈Java中Collections.sort对List排序的两种方法

随机推荐

  1. Android(安卓)之如何优化 UI 渲染(上)
  2. 【极光推送Jpush】Android集成极光推送及
  3. 获取Android设备唯一标识(唯一序列号)
  4. Android 2.1 源码结构分析 转载
  5. Android植物大战僵尸附源码
  6. GitHub上受欢迎的Android UI Library
  7. SharedPreferences之Android数据保存
  8. 通过userAgent判断是是否手机、微信、手
  9. Android第五个功能:文件存储到SDCard上面
  10. 原生APP中js怎样与Android和ios进行交互