[英]Setstate into onpressed floatingactionbutton is not performing any changes
[英]OnPressed FloatingActionButton set Icon
class Tickets extends StatefulWidget {
int groupid;
int event_id;
Tickets([this.groupid, this.event_id]);
@override
_TicketsState createState() => new _TicketsState();
}
List<Widget> ListMyWidgets(ticketGroups) {
IconData icon = Icons.undo;
List<Widget> list = new List();
list.add(new CupertinoNavigationBar(
backgroundColor: Colors.blue,
leading:
new Padding(
padding: new EdgeInsets.all(8.0),
child: new Text(ticketGroups[0]['ticket_name'],
style: const TextStyle(
fontSize: 20.0, fontFamily: 'Poppins', color: Colors.white)),
),
trailing: new Padding(
padding: new EdgeInsets.all(8.0),
child: new Text('${ticketGroups.length}',
style: const TextStyle(
fontSize: 20.0, fontFamily: 'Poppins', color: Colors.white))),
));
for (int i = 0; i < ticketGroups.length; i++) {
list.add(
new GestureDetector(
onHorizontalDragStart: (event) {
print("checked in");
print(ticketGroups[i]['id']);
setState(() {
_getStatusIn(ticketGroups[i]);
});
},
onDoubleTap: () {
setState(() {
_getStatusOut(ticketGroups[i]);
});
},
child: new Card(
child: new Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
new Padding(
padding: new EdgeInsets.all(8.0),
child: new Text(
"${ticketGroups[i]['ticket_name']}",
style:
const TextStyle(
fontSize: 15.0, fontFamily: 'Poppins')),
),
new Padding(
padding: new EdgeInsets.all(8.0),
child: new Text(ticketGroups[i]["used"].toString(),
style: const TextStyle(
fontSize: 15.0, fontFamily: 'Poppins')),
),
new SizedBox(
height: 30.0,
width: 30.0,
child: new IconButton(
padding: new EdgeInsets.all(0.0),
icon: new FloatingActionButton(
onPressed: (){
setState(() {
icon = Icons.check_circle;
});
},
child: new Icon(icon, size: 20.0),heroTag: null)
child: new Icon(icon,size: 25.0),heroTag: null)
)
)
]
),
)),
);
}
}
這是前一篇文章的更新部分,您可以看到我已完成建議的操作,但是當我按下“浮動操作按鈕”時,該圖標在其中不會發生變化。 這是前一篇文章的更新部分,您可以看到我已完成建議的操作,但是當我按下“浮動操作按鈕”時,該圖標在其中不會發生變化。
1)聲明要全局顯示的圖標
IconData icon = Icons.check_circle;
2)使用此圖標代替硬編碼圖標
new FloatingActionButton(
onPressed: (){
setState(() {
icon = icon == Icons.undo ? Icons.check_circle : Icons.undo; // Change icon and setState to rebuild
});
},
child: new Icon(icon, size: 25.0),heroTag: null)
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.