【发布时间】:2019-01-19 06:18:41
【问题描述】:
是否可以在 statefulls 内部小部件内(在主上下文之外)使用 setState?
我想要实现的是当用户点击它时让Button 更改color。它在 ListView.builder 内,因为有多个按钮,但我希望它只发生在 _buildAnsers 小部件中
Widget _buildAnswers(int questionIndex) {
//I need this to be inside this widget
Color _buttonColor = Colors.red;
return new ListView.builder(
itemCount: 10,
physics: ClampingScrollPhysics(),
shrinkWrap: true,
itemBuilder: (context, answerIndex) {
return Padding(
child: new RaisedButton(
onPressed: () {
setState(() {
_buttonColor = Colors.green; //this doesn't work?
});
},
color: _buttonColor,
splashColor: Color(0xFFde1f28),
disabledColor: Color(0xFFc54b51),
child: new Text('Container ${answerIndex}'),
)
);
},
);
}
【问题讨论】:
-
你想只改变一个按钮的颜色吗?
-
来自 ListView.builder 的倍数。我最终只是在外面制作了一个
List并将所有属性放在那里并使用列表来更改颜色
标签: dart widget flutter stateful