'Error in initializing AnimationController in flutter
I'm trying to make animated icon but I have an error in AnimationConroller _controller
line, before I write any code for Icons. Here is the code:
class _MyHomePageState extends State<MyHomePage> with SingleTickerProviderStateMixin {
AnimationController _controller;
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Column(
children: [],
),
));
}
}
Solution 1:[1]
From around July 2020 Dart was becoming null safe. After that we can't keep variables uninitialized without explicitly specifying that they could be null or that they would be initialized later.
Solution 1 - Using late
keyword
Replace AnimationController _controller
with late AnimationController _controller
Late variables are used in two situations as per Dart documentation :
- Declaring a non-nullable variable that’s initialized after its declaration.
- Lazily initializing a variable.
Solution 2 - Using ?
operator
?
is called Operational spread operator in category of Null check operators
Replace AnimationController _controller
with AnimationController? _controller;
?
essentially means that a given variable can be null
or have some other value as per its data type.
Example :
Color? favoriteColor
means favoriteColor
will either be null
or have some appropriate value.
Solution 3 - using both late
keyword and ?
operator
Replace AnimationController _controller
with late AnimationController? controller
For more information about Null Safety :
For more information about late
keyword:
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | user18520267 |