You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flutter中实现可随等级升降更新的等级图UI?

UI示例

等级动效图实现方案

前置准备

  • 梳理等级规则配置:把每个等级对应的积分阈值提前整理成数组,示例配置:
const levelConfig = [
  { level: 1, minScore: 0, maxScore: 100 },
  { level: 2, minScore: 100, maxScore: 300 },
  { level: 3, minScore: 300, maxScore: 600 },
  // 后续等级以此类推
]
  • 切图资源准备:等级徽章、进度条两端的装饰图标按设计稿切好备用。

核心实现逻辑

  • 进度计算:拿到用户当前积分后,匹配到对应的当前等级,再计算当前等级内的完成进度:
    • 若用户是满级,进度直接取100%
    • 非满级进度公式:progress = ((currentScore - currentLevel.minScore) / (currentLevel.maxScore - currentLevel.minScore)) * 100
  • 视图渲染:
    • 进度条底层用灰色轨道,上层用渐变填充层,宽度绑定计算出来的progress值
    • 每个等级的节点标记按等级阈值的位置均匀排布在进度条上
    • 当前等级高亮展示,未达到的等级置灰
  • 动态更新:
    • 积分/等级变更时重新执行进度计算逻辑,更新绑定的视图变量
    • 给填充层加transition过渡属性,实现进度变化的顺滑动画,示例CSS:
    .level-fill {
      transition: width 0.5s ease-in-out;
    }
    
    • 等级跨越时可额外加升级/降级的动效提示,优化交互体验

技术栈适配

  • 原生HTML/CSS/JS:直接操作DOM修改填充层的width属性、等级文本的内容即可
  • Vue/React等框架:将进度值、当前等级定义为响应式状态,状态变更时自动触发视图更新

内容的提问来源于stack exchange,提问作者Dipak Pd.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 13:57:03