我是Flutter开发的新手,
这是问题所在:
在我的函数中调用setState()
方法时,控制板无法正常工作。
我正在使用ControlPad GitHub
我的依赖项: control_pad:^ 1.0.0 + 2
当我在setState()
行中注释掉时,ControlPad可以正常工作,但是小部件没有更新,其他情况是ControlPad不能正常工作。
摘要:
我想将 _move 方法与 onDirectionChanged 函数绑定
import 'package:flutter/material.dart';
import 'package:control_pad/control_pad.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.lightBlue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title, this.test}) : super(key: key);
final String title;
final String test;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
double _x= 50;
double _y= 50;
void _move(double _degrees, double _distance) {
print('Degree:'+_degrees.toString()+' Distance:'+_distance.toString());
//setState(() {
_x += 1;
_y += 1;
//});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: null,
body: Container(
child: Stack(
children: <Widget>[
Container( //FullScreen
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.height,
color: Colors.grey,
),
Positioned(
bottom: _x ,
left: _y,
height: 50,
width: 50,
child: Container(
color: Colors.purple,
child: null,
),
),
Positioned(
bottom: 10 ,
left: 10,
child: JoystickView(
opacity: 0.9,
size: MediaQuery.of(context).size.width/4,
showArrows: false,
onDirectionChanged: (double degrees, double distance)=> _move(degrees,distance),
),
),
],
)
),
);
}
}
我不知道这段代码有什么问题。 任何帮助都非常宝贵。
答案 0 :(得分:0)
将您的构造函数修改为:
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title, this.test, this.onTap}) : super(key: key);
final String title;
final String test;
VoidCallback onTap;
@override
_MyHomePageState createState() => _MyHomePageState();
}
然后这样称呼它:
MyHomePage(
title: '',
'test': '',
(){}
);
我的答案基于您的标题,看来您在问题详细信息中寻找其他事物