我想根据变量值更改图标按钮的颜色。例如:如果变量值大于40,则图标颜色应为红色,否则图标颜色应为白色。我从SQLite表中获取变量值。以下代码,我已尝试,但其显示用于空值的空检查运算符。\
int? tatalLeave=0;
IconButton(
onPressed: (() {
getTotalLeave();
}),
icon: Icon(
Icons.notifications_active_rounded,
color:
tatalLeave! >= 40 ? Colors.red : Colors.white,
size: 30.0,
),
)
以下我已添加sqlite代码
//get total number of leaves
getTotalLeave() async {
int? count = await DatabaseHelper.instance.countAllLeave();
setState(() {
tatalLeave = count;
print(tatalLeave);
});
}
}
数据库助手类
Future<int?> countAllLeave() async {
Database db = await database;
final allLeave = Sqflite.firstIntValue(
await db.rawQuery('SELECT SUM(num_leave_days) FROM leave_Details'));
return allLeave;
}
请帮我解决我的问题。
1条答案
按热度按时间6gpjuf901#
尝试修改代码如下,因为getTotalLeave函数是异步的,你需要把等待.
(await是中断进程流,直到async方法完成)