博客
关于我
微信小程序——漂亮的步骤条(好看)
阅读量:760 次
发布时间:2019-03-23

本文共 2539 字,大约阅读时间需要 8 分钟。

安卓 movableview 小程序的步骤条实现代码解析

最近在开发一个安卓移动应用的过程中遇到了一个有趣的UI组件需求,想详细写下解决这个问题的过程。需求是一个动态步骤条状的UI布局,每一步都带有图标和文字,用户点击下一步可以跳转到下一个步骤。在此过程中,我对小程序的代码优化和布局改造进行了深入研究。这次写作主要聚焦于代码实现的逻辑分析和优化。

JS 代码核心逻辑解析

小程序的逻辑主要集中在 page 钩子和 numSteps 方法中。首先看 page 的定义部分:

Page({  data: {    stepList: [      { name: '开始' },      { name: '扫描' },      { name: '付款' },      { name: '完成' }    ],    stepNum: 1  },  onLoad: function () {      },  numSteps: function () {    this.setData({      stepNum: this.data.stepNum == this.data.stepList.length ? 1 : this.data.stepNum + 1    })  }})

这里的关键点在于:

  • 数据定义stepList 提供了所有步骤的名字,数量共4个;stepNum 用于追踪当前的步骤位置。

  • 初始数据加载onLoad 钩子其实并没有用到,初始数据已经通过 stepNum 设置为 1 开始。

  • 步骤跳转逻辑numSteps 方法是关键,它根据当前步骤数是否达到最末步来决定是否循环到第一步,否则加 1

  • WXSS 样式优化

    对于样式优化,WXSS 提供了丰富的工具支持。主要基础样式如下:

    page {  width: 100%;  height: 100%;}.steps_box {  width: 100%;  display: flex;  align-items: center;  justify-content: center;}.block-step {  display: flex;  flex-direction: row;  align-items: center;  justify-content: center;}.view_item {  display: flex;  align-items: center;  justify-content: center;  flex-direction: column;}.view_item text {  font-size: 30rpx;  margin-top: 20rpx;  color: #909090;}.view_item view {  width: 45rpx;  height: 45rpx;  border: 3rpx solid #909090;  border-radius: 50%;  display: flex;  align-items: center;  justify-content: center;  color: #909090;  font-size: 30rpx;  content: "\e732";}.view_line {  width: 15%;  height: 5rpx;  margin: 0rpx 2% 40rpx 2%;  background: linear-gradient(to right, #eadee0, #a0f1ea);}

    主要注意点包括:

  • Flexbox 布局:采用了 flexalign-items 实现横向布局,保证各步骤对齐。

  • 嵌套结构:使用多层嵌套实现了步骤的视觉效果,包括换行和图标展示。

  • 适配性设计:圆形图标和字体大小都做了相应适配,确保在不同屏幕尺寸下显示正常。

  • WXML 模板结构分析

    所谓的步骤条其实主要包含三个部分:

  • 步骤统计图标:使用自定义图标来体现完成度,图标和文字交替使用。

  • 步骤名称与进度条:每个步骤都有明确的名称和对应的图标提示。

  • 动态布局:通过 WX:FOR 实现了循环步骤显示,结合 STEPNUM 动态判断。

  • 具体面的 WXML 结构是这样写的:

    index+1
    #{item.name}

    核心实现细节:

  • 循环实现wx:for 用于遍历到每个步骤单元。

  • 条件判断:使用 stepNumindex 关联式判断当前步骤是否达标。

  • 渐变线方式:动态改变线条颜色,配合不同步骤的显示。

  • 绑定点击numSteps 方法通过 bindtap 实现联动性。

  • 功能测试与调试优化

    在实际运行中遇到的一些问题包括:

  • 图标显示异常:开始时图标未显示,后来发现是 view 标签里缺少 content 属性,导致图标无法显示。

  • 动态线条颜色刷新不及时:原代码导致线条颜色无法实时动态更新,经优化将 set-data 放在前面解决。

  • 点击事件绑定问题numSteps 方法一开始用 bindtap 直接引用 button 标签,后来改用 view 标签绑定更灵活。

  • 通过反复测试和调试,将函数优化得更加流畅统一。

    总结

    通过以上对代码实现的深入分析,总结出几个关键优化点:

    • 在保持 WXML 结构不变的情况下,遵循 DRY 原则减少冗余代码。
    • 通过合理使用 Flexbox 简化布局实现。
    • 优化数据结构使得 stepNum 能够实时更新。
    • 尽量减少样式嵌套层级,提升界面渲染效率。
    • 注意性质的脆性,防止跨步时输出错误。

    这些小细节的处理,最终确保了界面不仅有良好的外观效果,还具备良好的运行性和可维护性。

    转载地址:http://ugvzk.baihongyu.com/

    你可能感兴趣的文章
    mysql5.7命令总结
    查看>>
    mysql5.7安装
    查看>>
    mysql5.7性能调优my.ini
    查看>>
    MySQL5.7新增Performance Schema表
    查看>>
    Mysql5.7深入学习 1.MySQL 5.7 中的新增功能
    查看>>
    Webpack 之 basic chunk graph
    查看>>
    Mysql5.7版本单机版my.cnf配置文件
    查看>>
    mysql5.7的安装和Navicat的安装
    查看>>
    mysql5.7示例数据库_Linux MySQL5.7多实例数据库配置
    查看>>
    Mysql8 数据库安装及主从配置 | Spring Cloud 2
    查看>>
    mysql8 配置文件配置group 问题 sql语句group不能使用报错解决 mysql8.X版本的my.cnf配置文件 my.cnf文件 能够使用的my.cnf配置文件
    查看>>
    MySQL8.0.29启动报错Different lower_case_table_names settings for server (‘0‘) and data dictionary (‘1‘)
    查看>>
    MYSQL8.0以上忘记root密码
    查看>>
    Mysql8.0以上重置初始密码的方法
    查看>>
    mysql8.0新特性-自增变量的持久化
    查看>>
    Mysql8.0注意url变更写法
    查看>>
    Mysql8.0的特性
    查看>>
    MySQL8修改密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
    查看>>
    MySQL8修改密码的方法
    查看>>
    Mysql8在Centos上安装后忘记root密码如何重新设置
    查看>>