web-dev-qa-db-fra.com

Taille de l'indicateur de progression de flottement

Je me demandais s'il y avait un moyen de changer la largeur/longueur/hauteur de la barre de progression linéaire et circulaire. J'essaie de faire une barre XP en l'utilisant, mais je ne suis pas sûr que ce soit possible. De plus, je suis consciente que les valeurs ne sont que de 0,0 et 1,0, mais je pense aussi qu'il est possible (pas sûr) que je sois capable de créer une formule indiquant où cela fonctionnera encore.

3
aj580

L’indicateur de progression remplira son widget de présentation parent, par exemple

SizedBox(
    child: 
        new CircularProgressIndicator(
        valueColor: new AlwaysStoppedAnimation(Colors.blue),
        strokeWidth: 5.0),
    height: 300.0,
    width: 300.0,)
4
F-1

Comment puis-je combiner une classe qui crée un indicateur de chargement avec mon bouton , De sorte que lorsque je l'appuie, l'indicateur s'allume et passe à la page suivante

Voici le code:

class Loader extends StatefulWidget {
      @override
      State createState() => LoaderState();
    }

    class LoaderState extends State<Loader> with SingleTickerProviderStateMixin {
      AnimationController controller;
      Animation<double> animation;

      @override
      void initState() {
        super.initState();
        controller = AnimationController(
            duration: Duration(milliseconds: 1200), vsync: this);
        animation = CurvedAnimation(parent: controller, curve: Curves.elasticOut);
        animation.addListener(() {
          this.setState(() {});
        });
        animation.addStatusListener((AnimationStatus status) {});
        controller.repeat();
      }

      @override
      void dispose() {
        controller.dispose();
        super.dispose();
      }

      @override
      Widget build(BuildContext context) {
        return Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Container(
              color: Colors.blue,
              height: 3.0,
              width: animation.value * 100.0,
            ),
            Padding(
              padding: EdgeInsets.only(bottom: 5.0),
            ),
            Container(
              color: Colors.blue[300],
              height: 3.0,
              width: animation.value * 75.0,
            ),
            Padding(
              padding: EdgeInsets.only(bottom: 5.0),
            ),
            Container(
              color: Colors.blue,
              height: 3.0,
              width: animation.value * 50.0,
            )
          ],
        );
      }
    }


    Expanded(
                        child: Padding(
                          padding:
                              EdgeInsets.only(left: 20.0, right: 5.0, top:20.0),
                          child: GestureDetector(
                            onTap: () {
                              Navigator.Push(
                                  context,
                                  MaterialPageRoute(
                                      builder: (context) => FirstScreen()));
                            },
                            child: Container(
                                alignment: Alignment.center,
                                height: 45.0,
                                decoration: BoxDecoration(
                                    color: Color(0xFF1976D2),
                                    borderRadius: BorderRadius.circular(9.0)),
                                child: Text('Login',
                                    style: TextStyle(
                                        fontSize: 20.0, color: Colors.white))),
                          ),
                        ),
                      ),
0
Max Zubko