Итак, я пытался обнаружить жест для своего игрового приложения с помощью класса InkWell, и я пробовал много способов вызвать событие жеста.
После того, как я обнаружил событие жеста, которое работает с моим игровым приложением, я заметил, что если я попытался переключить переменную с именем mycolor, которую я использовал для переключения цвета прямоугольника, как показано ниже, для объявления вне Widget Build (). Это сработало !
, но когда я вернулся к объявлению внутри Widget Build (). Это не так!
Почему объявление переменной влияет на результат моего события жеста?
Перед объявлением переменной вне WidgetBuild ()
После объявления переменной вне WidgetBuild ()
class GameStructureState extends State<GameStructure>{
bool mycolor = true;
@override
Widget build(BuildContext context) {
double w = MediaQuery.of(context).size.width;
double h = MediaQuery.of(context).size.height;
//bool mycolor = true;
//debugPaintPointersEnabled = true;
return Center(
child: Column(
children: <Widget>[
Row( children: <Widget>[
InkWell(
onTap: (){
setState(() {
mycolor = false;
print(mycolor);
});
},
child: Padding(
padding: EdgeInsets.all(w/30),
child: Container(width: 100.0,height: 100.0,color: mycolor ? Colors.blue:Colors.green,child: Text(mycolor.toString()),),
),
),
],
),
],
),
);
}
}