我正在学习Flutter allthought我不知道它是否是正确的决定。任何方式我想使用Material Librery的LinearProgressIndicator组件,但我没有得到如何使用它我试过这段代码:
import 'dart:async';
import 'package:flutter/material.dart';
void main() {
runApp(new MaterialApp(
debugShowCheckedModeBanner: false,
home: new MyApp(),
));
}
class MyApp extends StatefulWidget {
@override
MyAppState createState() => new MyAppState();
}
class MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text('Slider Demo'),
),
body: new Container(
color: Colors.blueAccent,
padding: new EdgeInsets.all(32.0),
child: new ProgressIndicatorDemo(),
),
);
}
}
class ProgressIndicatorDemo extends StatefulWidget {
@override
_ProgressIndicatorDemoState createState() =>
new _ProgressIndicatorDemoState();
}
class _ProgressIndicatorDemoState extends State<ProgressIndicatorDemo>
with SingleTickerProviderStateMixin {
AnimationController _controller;
@override
void initState() {
super.initState();
_controller = new AnimationController(
duration: const Duration(milliseconds: 1500),
vsync: this,
);
_playAnimation();
}
Future<Null> _playAnimation() async {
try {
await _controller.repeat().orCancel;
} on TickerCanceled {
// the animation got canceled, probably because we were disposed
}
}
@override
void dispose() {
_controller.stop();
super.dispose();
}
@override
Widget build(BuildContext context) {
return _buildAnimation(context, null);
}
Widget _buildAnimation(BuildContext context, Widget child) {
return new Center(
child: new Container(
color: Colors.redAccent,
child: new LinearProgressIndicator(
value: _controller.value,
backgroundColor: Colors.redAccent,
),
));
}
}
但我总是得到这个错误
I/flutter ( 3819): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY
╞═══════════════════════════════════════════════════════════
I/flutter ( 3819): The following NoSuchMethodError was thrown building
ProgressIndicatorDemo(dirty, state:
I/flutter ( 3819): _ProgressIndicatorDemoState#80400(ticker active)):
I/flutter ( 3819): The getter 'value' was called on null.
I/flutter ( 3819): Receiver: null
I/flutter ( 3819): Tried calling: value
I/flutter ( 3819):
I/flutter ( 3819): When the exception was thrown, this was the stack:
I/flutter ( 3819): #0 Object.noSuchMethod
(dart:core/runtime/libobject_patch.dart:46:5)
I/flutter ( 3819): #1 _ProgressIndicatorDemoState.build
(file:///E:/Flutter_work/animation_test/lib/main.dart:67:26)
I/flutter ( 3819): #2 StatefulElement.build
(package:flutter/src/widgets/framework.dart:3730:27)
I/flutter ( 3819): #3 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:3642:15)
I/flutter ( 3819): #4 Element.rebuild
(package:flutter/src/widgets/framework.dart:3495:5)
I/flutter ( 3819): #5 StatefulElement.update
(package:flutter/src/widgets/framework.dart:3799:5)
I/flutter ( 3819): #6 Element.updateChild
(package:flutter/src/widgets/framework.dart:2699:15)
I/flutter ( 3819): #7 SingleChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:4661:14)
I/flutter ( 3819): #8 Element.updateChild
(package:flutter/src/widgets/framework.dart:2699:15)
I/flutter ( 3819): #9 SingleChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:4661:14)
I/flutter ( 3819): #10 Element.updateChild
(package:flutter/src/widgets/framework.dart:2699:15)
I/flutter ( 3819): #11 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:3653:16)
I/flutter ( 3819): #12 Element.rebuild
(package:flutter/src/widgets/framework.dart:3495:5)
I/flutter ( 3819): #13 StatelessElement.update
(package:flutter/src/widgets/framework.dart:3702:5)
I/flutter ( 3819): #14 Element.updateChild
(package:flutter/src/widgets/framework.dart:2699:15)
I/flutter ( 3819): #15 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:3653:16)
I/flutter ( 3819): #16 Element.rebuild
(package:flutter/src/widgets/framework.dart:3495:5)
I/flutter ( 3819): #17 ProxyElement.update
(package:flutter/src/widgets/framework.dart:3909:5)
I/flutter ( 3819): #18 Element.updateChild
(package:flutter/src/widgets/framework.dart:2699:15)
I/flutter ( 3819): #19 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:3653:16)
I/flutter ( 3819): #20 Element.rebuild
(package:flutter/src/widgets/framework.dart:3495:5)
I/flutter ( 3819): #21 ProxyElement.update
(package:flutter/src/widgets/framework.dart:3909:5)
I/flutter ( 3819): #22 Element.updateChild
(package:flutter/src/widgets/framework.dart:2699:15)
I/flutter ( 3819): #23 RenderObjectElement.updateChildren
(package:flutter/src/widgets/framework.dart:4379:32)
I/flutter ( 3819): #24 MultiChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:4769:17)
I/flutter ( 3819): #25 Element.updateChild
(package:flutter/src/widgets/framework.dart:2699:15)
I/flutter ( 3819): #26 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:3653:16)
I/flutter ( 3819): #27 Element.rebuild
(package:flutter/src/widgets/framework.dart:3495:5)
I/flutter ( 3819): #28 StatefulElement.update
(package:flutter/src/widgets/framework.dart:3799:5)
I/flutter ( 3819): #29 Element.updateChild
(package:flutter/src/widgets/framework.dart:2699:15)
I/flutter ( 3819): #30 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:3653:16)
I/flutter ( 3819): #31 Element.rebuild
(package:flutter/src/widgets/framework.dart:3495:5)
I/flutter ( 3819): #32 ProxyElement.update
(package:flutter/src/widgets/framework.dart:3909:5)
I/flutter ( 3819): #33 Element.updateChild
(package:flutter/src/widgets/framework.dart:2699:15)
I/flutter ( 3819): #34 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:3653:16)
I/flutter ( 3819): #35 Element.rebuild
(package:flutter/src/widgets/framework.dart:3495:5)
I/flutter ( 3819): #36 StatefulElement.update
(package:flutter/src/widgets/framework.dart:3799:5)
I/flutter ( 3819): #37 Element.updateChild
(package:flutter/src/widgets/framework.dart:2699:15)
I/flutter ( 3819): #38 SingleChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:4661:14)
I/flutter ( 3819): #39 Element.updateChild
(package:flutter/src/widgets/framework.dart:2699:15)
I/flutter ( 3819): #40 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:3653:16)
I/flutter ( 3819): #41 Element.rebuild
(package:flutter/src/widgets/framework.dart:3495:5)
I/flutter ( 3819): #42 StatelessElement.update
(package:flutter/src/widgets/framework.dart:3702:5)
I/flutter ( 3819): #43 Element.updateChild
(package:flutter/src/widgets/framework.dart:2699:15)
I/flutter ( 3819): #44 SingleChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:4661:14)
I/flutter ( 3819): #45 Element.updateChild
(package:flutter/src/widgets/framework.dart:2699:15)
I/flutter ( 3819): #46 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:3653:16)
I/flutter ( 3819): #47 Element.rebuild
(package:flutter/src/widgets/framework.dart:3495:5)
I/flutter ( 3819): #48 StatefulElement.update
(package:flutter/src/widgets/framework.dart:3799:5)
I/flutter ( 3819): #49 Element.updateChild
(package:flutter/src/widgets/framework.dart:2699:15)
I/flutter ( 3819): #50 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:3653:16)
I/flutter ( 3819): #51 Element.rebuild
(package:flutter/src/widgets/framework.dart:3495:5)
I/flutter ( 3819): #52 StatefulElement.update
(package:flutter/src/widgets/framework.dart:3799:5)
I/flutter ( 3819): #53 Element.updateChild
(package:flutter/src/widgets/framework.dart:2699:15)
I/flutter ( 3819): #54 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:3653:16)
I/flutter ( 3819): #55 Element.rebuild
(package:flutter/src/widgets/framework.dart:3495:5)
I/flutter ( 3819): #56 ProxyElement.update
(package:flutter/src/widgets/framework.dart:3909:5)
I/flutter ( 3819): #57 Element.updateChild
(package:flutter/src/widgets/framework.dart:2699:15)
I/flutter ( 3819): #58 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:3653:16)
I/flutter ( 3819): #59 Element.rebuild
(package:flutter/src/widgets/framework.dart:3495:5)
I/flutter ( 3819): #60 ProxyElement.update
(package:flutter/src/widgets/framework.dart:3909:5)
I/flutter ( 3819): #61 Element.updateChild
(package:flutter/src/widgets/framework.dart:2699:15)
I/flutter ( 3819): #62 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:3653:16)
I/flutter ( 3819): #63 Element.rebuild
(package:flutter/src/widgets/framework.dart:3495:5)
I/flutter ( 3819): #64 StatefulElement.update
(package:flutter/src/widgets/framework.dart:3799:5)
I/flutter ( 3819): #65 Element.updateChild
(package:flutter/src/widgets/framework.dart:2699:15)
I/flutter ( 3819): #66 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:3653:16)
I/flutter ( 3819): #67 Element.rebuild
(package:flutter/src/widgets/framework.dart:3495:5)
I/flutter ( 3819): #68 BuildOwner.buildScope
(package:flutter/src/widgets/framework.dart:2242:33)
Reloaded 0 of 391 libraries in 829ms.
Lost connection to device.
如何解决这个问题,我试图做这个演示qazxsw poi但也是相同的结果任何人可以帮助我在工作的例子,或者可以告诉我在我的代码中有什么问题?问候
您可以将import 'dart:async';
import 'package:flutter/material.dart';
void main() {
runApp(new MaterialApp(
debugShowCheckedModeBanner: false,
home: new MyApp(),
));
}
class MyApp extends StatefulWidget {
@override
MyAppState createState() => new MyAppState();
}
class MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text('Slider Demo'),
),
body: new Container(
color: Colors.blueAccent,
padding: new EdgeInsets.all(32.0),
child: new ProgressIndicatorDemo(),
),
);
}
}
class ProgressIndicatorDemo extends StatefulWidget {
@override
_ProgressIndicatorDemoState createState() =>
new _ProgressIndicatorDemoState();
}
class _ProgressIndicatorDemoState extends State<ProgressIndicatorDemo>
with SingleTickerProviderStateMixin {
AnimationController controller;
Animation<double> animation;
@override
void initState() {
super.initState();
controller = AnimationController(
duration: const Duration(milliseconds: 2000), vsync: this);
animation = Tween(begin: 0.0, end: 1.0).animate(controller)
..addListener(() {
setState(() {
// the state that has changed here is the animation object’s value
});
});
controller.repeat();
}
@override
void dispose() {
controller.stop();
super.dispose();
}
@override
Widget build(BuildContext context) {
return new Center(
child: new Container(
child: LinearProgressIndicator( value: animation.value,),
)
);
}
}
简单地用于AlwaysStoppedAnimation
,
valueColor
试试这个 :
代替
LinearProgressIndicator(
backgroundColor: Colors.red,
valueColor: AlwaysStoppedAnimation<Color>(Colors.amber,),
value: 0.8,
),
使用
value: _controller.value,
你也可以使用我创建的包,它有动画:
value: _controller.value ?? 0.0,
这个问题的解决方案是将颤振信道从beta切换到主信道,然后上面的代码工作