Проблема: Согласно другим решениям, которые я нашел, я инициализировал свою переменную вне функции сборки, но setState () по-прежнему не обновляет мое значение.
Здесь я пытаюсь обновить значение ldn (номер левого кубика) до 6 с 1, когда оно когда-либо почувствует прикосновение. Когда я печатаю значения на консоли, он показывает:
I/flutter (29149): LDN = 1
I/flutter (29149): LDN = 6
Вот код для моего виджета с состоянием:
class DicePage extends StatefulWidget {
@override
_DicePageState createState() => _DicePageState();
}
class _DicePageState extends State<DicePage> {
int ldn;
@override
Widget build(BuildContext context) {
ldn = 1;
return Center(
child: Row(
children: <Widget>[
Expanded(
child: Padding(
padding: const EdgeInsets.fromLTRB(16, 16, 8, 16),
child: FlatButton(
padding: EdgeInsets.all(0),
onPressed: (){
setState(() {
print('LDN = $ldn');
ldn = 6;
print('LDN = $ldn');
});
},
child: Image.asset('images/dice$ldn.png'),
),
),
),
Expanded(
child:Padding(
padding: const EdgeInsets.fromLTRB(8, 16, 16, 16),
child: FlatButton(
onPressed: (){
print('Right buttin got pressde');
},
padding: EdgeInsets.all(0),
child: Image.asset('images/dice1.png'),
),
),
)
],
),
);
} // Build
}