您可以使用 CircularProgressIndicator.adaptive,它使您能够赋予进度“价值”。
您可以给出从 0 到 1 的任何进度值(1 是完整的圆圈),
所以可以将您的值作为分数(progressValue/totalValue)提供给 value 参数。
例如在你的情况下是 100/1200
对于额外的值,您可以添加一个简单的检查,以确定进度值是否大于您的 totalValue,然后显示它们的差异
这是通过单击按钮将进度值增加 100 并显示额外值(如果有)的代码。
class ExampleScreen extends StatefulWidget {
const ExampleScreen({Key? key}) : super(key: key);
@override
State<ExampleScreen> createState() => _ExampleScreenState();
}
class _ExampleScreenState extends State<ExampleScreen> {
int totalValue = 1200;
int loadingValue = 0;
void onAddButtonPressed() {
setState(() {
loadingValue += 100;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
floatingActionButton: FloatingActionButton(
onPressed: onAddButtonPressed,
tooltip: 'Add 100',
child: const Icon(Icons.add),
),
body: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
CircularProgressIndicator.adaptive(
value: loadingValue / totalValue,
),
if (loadingValue > totalValue) ...[
const SizedBox(
height: 10,
),
Text(
'your extra values are ${loadingValue - totalValue}',
),
]
],
),
),
);
}
}