線形と円形の両方のプログレスバーの幅/長さ/高さを変更する方法があるかどうか疑問に思っていました。 XP barを使用して作成しようとしていますが、それが可能かどうかはわかりません。また、値が0.0と1.0のみであることに気づきましたが、私はそれがまだ機能する場所に数式を作成できる可能性があります(確かではありません)。
進行状況インジケーターは、その親レイアウトウィジェットを満たします。
SizedBox(
height: 300.0,
width: 300.0,
child:
CircularProgressIndicator(
valueColor: AlwaysStoppedAnimation(Colors.blue),
strokeWidth: 5.0)
)
このようにして、円形進捗インジケータは、それを含む父親の幅と高さを取りません。
よろしく
<Widget>[Center(child: CircularProgressIndicator())]
ロードインジケーターを作成するクラスをボタンと組み合わせて、ボタンを押すとインジケーターがオンになり、次のページに移動できるようにするにはどうすればよいですか?
ここにコード:
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))),
),
),
),