我的 Flutter 代码无法在模拟器上运行。手势检测器似乎没有检测到手势
My Flutter code is not working on the emulator . The gesture detector doesn't seem to detect the gestures
我已经尝试了各种方法,我的代码似乎没有错误。我也检查了 flutter doctor ,但我仍然没有得到任何结果。任何人都可以帮助我,我是编码的初学者。
我想我的设置状态 class 有一些问题,但我的终端 window 没有任何显示。请帮助我遇到这个问题,我在 google 上找不到任何可以回答我问题的内容。
这是我的代码
class InputPage extends StatefulWidget {
@override
InputPageState createState() => InputPageState();
}
class InputPageState extends State<InputPage> {
Color maleCardColor = inactiveCardColor;
Color femaleCardColor = inactiveCardColor;
void updateColor ( int gender) {
// male was pressed
if (gender == 1) {
if (maleCardColor == inactiveCardColor) {
maleCardColor = activeCardColor;
} else {
maleCardColor = inactiveCardColor;
}
}
if (gender == 2) {
if (femaleCardColor == inactiveCardColor) {
femaleCardColor = activeCardColor;
} else {
femaleCardColor = inactiveCardColor;
}
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Color(0xFF10A0E21),
appBar: AppBar(
title: Text("BMI CALCULATOR",
),
backgroundColor: Colors.black,
centerTitle: true,
),
body: Column(
children: [
Expanded(
child: Row(
children: [
Expanded(
child: GestureDetector(
onTap: () {
setState(() {
updateColor(1);
});
},
child: ReusableCard(
cardColor:inactiveCardColor,
cardChild: IconContent(
iconImage: FontAwesomeIcons.mars,
iconText: "MALE",) ,
),
),
),
Expanded(
child:GestureDetector(
onTap: (){
setState(() {
updateColor(2);
});
},
child:ReusableCard(cardColor:inactiveCardColor,
cardChild:
IconContent(iconImage:FontAwesomeIcons.venus,
iconText: "FEMALE",),
),
),`enter code here`
),
],
),
),
使用setState改变状态
if (gender == 2) {
if (femaleCardColor == inactiveCardColor) {
setState((){
femaleCardColor = activeCardColor;
});
} else {
setState((){
femaleCardColor = inactiveCardColor;
});
}
}
并从这里删除 setState
setState(() {
updateColor(2);
});
我已经尝试了各种方法,我的代码似乎没有错误。我也检查了 flutter doctor ,但我仍然没有得到任何结果。任何人都可以帮助我,我是编码的初学者。 我想我的设置状态 class 有一些问题,但我的终端 window 没有任何显示。请帮助我遇到这个问题,我在 google 上找不到任何可以回答我问题的内容。
这是我的代码
class InputPage extends StatefulWidget {
@override
InputPageState createState() => InputPageState();
}
class InputPageState extends State<InputPage> {
Color maleCardColor = inactiveCardColor;
Color femaleCardColor = inactiveCardColor;
void updateColor ( int gender) {
// male was pressed
if (gender == 1) {
if (maleCardColor == inactiveCardColor) {
maleCardColor = activeCardColor;
} else {
maleCardColor = inactiveCardColor;
}
}
if (gender == 2) {
if (femaleCardColor == inactiveCardColor) {
femaleCardColor = activeCardColor;
} else {
femaleCardColor = inactiveCardColor;
}
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Color(0xFF10A0E21),
appBar: AppBar(
title: Text("BMI CALCULATOR",
),
backgroundColor: Colors.black,
centerTitle: true,
),
body: Column(
children: [
Expanded(
child: Row(
children: [
Expanded(
child: GestureDetector(
onTap: () {
setState(() {
updateColor(1);
});
},
child: ReusableCard(
cardColor:inactiveCardColor,
cardChild: IconContent(
iconImage: FontAwesomeIcons.mars,
iconText: "MALE",) ,
),
),
),
Expanded(
child:GestureDetector(
onTap: (){
setState(() {
updateColor(2);
});
},
child:ReusableCard(cardColor:inactiveCardColor,
cardChild:
IconContent(iconImage:FontAwesomeIcons.venus,
iconText: "FEMALE",),
),
),`enter code here`
),
],
),
),
使用setState改变状态
if (gender == 2) {
if (femaleCardColor == inactiveCardColor) {
setState((){
femaleCardColor = activeCardColor;
});
} else {
setState((){
femaleCardColor = inactiveCardColor;
});
}
}
并从这里删除 setState
setState(() {
updateColor(2);
});