Flutter 如何根据从外部传递的更改值动态更改自定义小部件中成员的值
我是个新手。 我试图制作一个自定义小部件,它使用贝塞尔曲线绘制一个胶粘的圆,该圆根据滑块的值改变其位置 我制作了一个gif来显示我在做什么 问题是,我需要根据_sliderValue更改胶粘圆的位置(进度),但似乎GooeyCircleWidget中的Flutter 如何根据从外部传递的更改值动态更改自定义小部件中成员的值,flutter,flutter-layout,flutter-dependencies,flutter-animation,flutter-widget,Flutter,Flutter Layout,Flutter Dependencies,Flutter Animation,Flutter Widget,我是个新手。 我试图制作一个自定义小部件,它使用贝塞尔曲线绘制一个胶粘的圆,该圆根据滑块的值改变其位置 我制作了一个gif来显示我在做什么 问题是,我需要根据_sliderValue更改胶粘圆的位置(进度),但似乎GooeyCircleWidget中的进度保持初始值,并且在滑块移动时从不更改。我希望它被动态地传递到小部件中,有人能帮我找到我应该做什么吗?谢谢 GooeyCircleWidget( progress: _sliderValue,
进度
保持初始值,并且在滑块移动时从不更改。我希望它被动态地传递到小部件中,有人能帮我找到我应该做什么吗?谢谢
GooeyCircleWidget(
progress: _sliderValue,
color: Colors.blue,
),
类GooeyCircleWidget扩展StatefulWidget{
颜色;
双重进步;
_GooeyCircleWidgetState createState()=>\u GooeyCircleWidgetState(
进展:进展,
颜色:颜色,
);
白痴({
@需要这个进度,
这个颜色
});å
}
类GooeyCircleWidgetState扩展了状态
使用SingleTickerProviderStateMixin{
最终双倍进展;
动画控制器;
最终颜色;
_GooeyCircleWidgetState(
{@required this.progress,
这是一种颜色});
@凌驾
void initState(){
super.initState();
控制器=动画控制器(vsync:this);
}
@凌驾
小部件构建(构建上下文){
印刷(进度);
//TODO:实现构建
返回自定义油漆(
画家:动画画师(
进展:进展,
颜色:颜色,
),
尺寸:尺寸(1080200),
);
}
}
不要将变量从GooeyCircleWidget传递到_GooeyCircleWidgetState的构造函数中。改用小部件。
像这样:
类GooeyCircleWidget扩展StatefulWidget{
颜色;
双重进步;
@凌驾
_GooeyCircleWidgetState createState()=>\u GooeyCircleWidgetState();
白痴({
@需要这个进度,
这个颜色,
});
}
类GooeyCircleWidgetState扩展了状态
使用SingleTickerProviderStateMixin{
动画控制器;
@凌驾
void initState(){
super.initState();
控制器=动画控制器(vsync:this);
}
@凌驾
小部件构建(构建上下文){
打印(widget.progress);
//TODO:实现构建
返回自定义油漆(
画家:动画画师(
进度:widget.progress,
颜色:widget.color
),
尺寸:尺寸(1080200),
);
}
}
不要将变量从GooeyCircleWidget传递到_GooeyCircleWidgetState的构造函数中。改用小部件。
像这样:
类GooeyCircleWidget扩展StatefulWidget{
颜色;
双重进步;
@凌驾
_GooeyCircleWidgetState createState()=>\u GooeyCircleWidgetState();
白痴({
@需要这个进度,
这个颜色,
});
}
类GooeyCircleWidgetState扩展了状态
使用SingleTickerProviderStateMixin{
动画控制器;
@凌驾
void initState(){
super.initState();
控制器=动画控制器(vsync:this);
}
@凌驾
小部件构建(构建上下文){
打印(widget.progress);
//TODO:实现构建
返回自定义油漆(
画家:动画画师(
进度:widget.progress,
颜色:widget.color
),
尺寸:尺寸(1080200),
);
}
}
class GooeyCircleWidget extends StatefulWidget {
Color color;
double progress ;
_GooeyCircleWcoloridgetState createState() => _GooeyCircleWidgetState(
progress: progress,
color:color,
);
GooeyCircleWidget({
@required this.progress,
this.color
});å
}
class _GooeyCircleWidgetState extends State<GooeyCircleWidget>
with SingleTickerProviderStateMixin {
final double progress;
AnimationController controller;
final Color color;
_GooeyCircleWidgetState(
{@required this.progress,
this.color});
@override
void initState() {
super.initState();
controller = AnimationController(vsync: this);
}
@override
Widget build(BuildContext context) {
print(progress);
// TODO: implement build
return CustomPaint(
painter: AnimatedCirclePainter(
progress: progress,
color: color,
),
size: Size(1080, 200),
);
}
}