颤振状态颜色更改

  • 本文关键字:颜色 状态 flutter
  • 更新时间 :
  • 英文 :


如果挂起变成红色,完成变成绿色,我如何更改来自数据库的状态值的颜色

我的数据库中有一个值挂起和完成,如果状态显示为挂起,则我的颤振中的状态颜色将为红色,如果完成,则颜色将为绿色

final x = list[i];
debugPrint(x.toString());
return Container(
padding: EdgeInsets.all(20.0),
child: Row(
children: <Widget>[
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
'Vessel Name:t' + x["vesselname"],
style: TextStyle(fontSize: 20.0, fontWeight: FontWeight.bold),
),
Text('Ship Call #:t' + x["scn"], style: TextStyle(fontSize: 20.0)),
Text('Vessel Number:t' + x["voyageno"], style: TextStyle(fontSize: 20.0)),
Text('Status:t' + x["status"], style: TextStyle(fontSize: 20.0)),
Divider()
],
),
),
],
),
);

这是我对数据库的请求:

var url = "http://192.168.1.15/vessellog/read.php";
List<dynamic> list = [];
Future<void> getData() async {
list.clear();
setState(() {
loading = true;
});
Future<SharedPreferences> _prefs = SharedPreferences.getInstance();
SharedPreferences preferences = await _prefs;
String id = preferences.getString("id");
final response = await http.get(url + "?client_signature=$id");
debugPrint(response.body);
if (response.contentLength == 2) {
} else
setState(() {
list = jsonDecode(response.body);
loading = false;
});
}

您需要使用TextStyle中的color参数。根据loading值进行更改。

这是你的完整代码与这个小的变化,见评论行:

final x = list[i];
debugPrint(x.toString());
return Container(
padding: EdgeInsets.all(20.0),
child: Row(
children: <Widget>[
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
'Vessel Name:t' + x["vesselname"],
style: TextStyle(fontSize: 20.0, fontWeight: FontWeight.bold),
),
Text('Ship Call #:t' + x["scn"], style: TextStyle(fontSize: 20.0)),
Text('Vessel Number:t' + x["voyageno"], style: TextStyle(fontSize: 20.0)),
Text(
'Status:t' + x["status"],
style: TextStyle(
fontSize: 20.0,
color: loading ? Colors.red : Colors.green, // isPending is the value from your database
),
),
Divider()
],
),
),
],
),
);

最新更新