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

如何在Flutter中实现如图所示的带动画百分比圆形进度条?

实现带动画效果的百分比圆形进度条

下面是一套可直接复用的实现方案,完全匹配你需要的圆形进度条效果,包含平滑动画和百分比显示功能:

1. HTML结构

<div class="circular-progress">
  <div class="progress-ring">
    <div class="progress-left">
      <div class="progress-bar"></div>
    </div>
    <div class="progress-right">
      <div class="progress-bar"></div>
    </div>
  </div>
  <div class="progress-text">0%</div>
</div>

2. CSS样式

.circular-progress {
  position: relative;
  width: 200px;
  height: 200px;
}

.progress-ring {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background-color: #e0e0e0;
  position: relative;
  overflow: hidden;
}

.progress-left, .progress-right {
  position: absolute;
  width: 50%;
  height: 100%;
  overflow: hidden;
}

.progress-left {
  left: 0;
}

.progress-right {
  right: 0;
}

.progress-bar {
  width: 100%;
  height: 100%;
  background-color: #4CAF50;
  transition: transform 0.5s ease-in-out;
}

.progress-left .progress-bar {
  transform-origin: right center;
}

.progress-right .progress-bar {
  transform-origin: left center;
}

.progress-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 24px;
  font-weight: bold;
  color: #333;
}

3. JavaScript逻辑

function setProgress(percent) {
  const progressText = document.querySelector('.progress-text');
  const leftBar = document.querySelector('.progress-left .progress-bar');
  const rightBar = document.querySelector('.progress-right .progress-bar');
  
  if (percent <= 50) {
    rightBar.style.transform = `rotate(${percent * 3.6}deg)`;
    leftBar.style.transform = 'rotate(0deg)';
  } else {
    rightBar.style.transform = 'rotate(180deg)';
    leftBar.style.transform = `rotate(${(percent - 50) * 3.6}deg)`;
  }
  
  progressText.textContent = `${percent}%`;
}

// 示例:设置75%进度
setProgress(75);

关键说明

  • 动画实现:通过CSS的transition属性给进度条旋转添加平滑过渡,修改transform的旋转角度即可触发动画
  • 百分比控制:圆形一圈为360度,1%对应3.6度,通过计算角度控制左右半圆的旋转状态,实现0-100%的进度覆盖
  • 样式自定义:可修改.progress-bar背景色、.circular-progress宽高、字体样式等,快速适配你的UI需求

内容的提问来源于stack exchange,提问作者Mohammad Faizan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 08:35:25