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.
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,)
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))),
),
),
),