线性进度指示器颤动

问题描述 投票:0回答:1

在 flutter 中,是否可以实现类似 google 的线性进度指示器样式,如附图所示? 这是我的代码

LinearProgressIndicator(
  borderRadius: const BorderRadius.only(topRight: Radius.circular(4), bottomLeft: Radius.circular(4)),
  value: percentage,
  backgroundColor: Colors.white,
  color: Colors.black,
),

其中百分比是根据屏幕高度计算的。 主线(左)和副线(右)之间的空间;和停止指示器。

flutter material-design linearprogressindicator
1个回答
0
投票
import 'package:flutter/material.dart';

class GoogleStyleProgressIndicator extends StatelessWidget {
  final double percentage;

  GoogleStyleProgressIndicator({required this.percentage});

  @override
  Widget build(BuildContext context) {
    return Container(
      height: 10,
      decoration: BoxDecoration(
        color: Colors.white,
        borderRadius: BorderRadius.circular(4),
      ),
      child: Stack(
        children: [
          Container(
            width: double.infinity,
            decoration: BoxDecoration(
              color: Colors.grey[300],
              borderRadius: BorderRadius.circular(4),
            ),
          ),
          FractionallySizedBox(
            widthFactor: percentage,
            child: Container(
              decoration: BoxDecoration(
                color: Colors.black,
                borderRadius: BorderRadius.only(
                  topRight: Radius.circular(4),
                  bottomLeft: Radius.circular(4),
                ),
              ),
            ),
          ),
        ],
      ),
    );
  }
}

在此示例中:

容器提供背景和边框半径。 堆栈允许对背景和进度条进行分层。 FractionallySizedBox 根据百分比调整进度条的宽度。 您可以调整高度、颜色和边框半径以匹配您想要的确切样式。这种方法使您可以更灵活地自定义进度指示器的外观。

我希望这可以帮助你。

© www.soinside.com 2019 - 2024. All rights reserved.