Flutter 火力基地:使用相应数据更改属性

0mkxixxg  于 2023-03-09  发布在  Flutter
关注(0)|答案(1)|浏览(112)

我有一个应用程序,其中一个集合有一个字段“状态”。此字段随streamBuilder的使用而更改。运行良好。我可以访问更新的更改。但是,我想根据字段“状态”中的数据更改该特定字段的TextStyle。“状态”字段中的数据为:“未验证”、“挂起验证”、“已验证”。我希望文本样式(例如颜色)根据“用户状态”进行更改
我不知道该怎么做。需要帮忙吗。
下面是代码:

final uid = FirebaseAuth.instance.currentUser!.uid;
CollectionReference users = FirebaseFirestore.instance.collection('users');

StreamBuilder(
                                stream: users.doc(uid).snapshots(),
                                builder: (BuildContext context,
                                    AsyncSnapshot snapshot) {
                                  String status = snapshot.data['Status'];
                                  
                                  if (snapshot.connectionState ==
                                      ConnectionState) {
                                    return const Center(
                                      child: CircularProgressIndicator(),
                                    );
                                  }

                                  return Text(status);
                                }),
                          ],
fdbelqdn

fdbelqdn1#

创建一个Map,并为其分配状态和颜色:

const statusColors = <String, Color> {
  'not verified': Colors.red,
  'pending verification': Colors.orange,
  'verified': Colors.green,
};

StreamBuilder中,根据此图分配一个带颜色的TextStyle;您可以使用Text小部件的style参数:

return Text(status, style: TextStyle(color: statusColors[status]));

相关问题