使用if语句更改更改小部件的颜色

时间:2019-06-25 14:41:45

标签: flutter dart

可以在我的应用程序中注册用户,我的应用程序可以使用sqlite保存用户信息,每个注册用户可以使用sms验证其手机号码,并且用户可以通过{{ 1}}数据库上的项目

现在,我有一些由班级创建的巫婆物品列表:

userActive

在应用程序中,有一些针对注册用户以及通过短信激活帐户的项目,在 final List<DashboardItems> dashboardItems = [ DashboardItems(menuItem: MenuItems.dashboard, title: Strings.drawerItemHome, icon: 'assets/icons/home.png', forActiveUser: false), DashboardItems(menuItem: MenuItems.healthProfile, title: Strings.drawerItemProfile, icon: 'assets/icons/cannabis.png', forActiveUser: true), ]; 类中,此字段为DashboardItems

例如,假设我有一个简单的forActiveUser,谁可以给活跃用户涂白色呢?

使用以下代码,我应该有一个白色容器Container和一个灰色容器MenuItems.dashboard

但是我有两个MenuItems.healthProfile容器

white

已更新:

decoration: BoxDecoration( color: user != null && user.userActive == 1 ? Colors.white : user == null || (user != null && user.userActive == 0) || !item.forActiveUser ? Colors.white : Colors.grey, borderRadius: BorderRadius.all(Radius.circular(5.0)), boxShadow: [ BoxShadow( blurRadius: 0.5, color: Colors.black, offset: Offset(0.0, 0.0), ) ]), 在以下情况下应为白色

container

否则:

`user!=null` and `user.userActive`==1   <-- all containers should be white

1 个答案:

答案 0 :(得分:0)

如果我理解的正确,那么情况应该是这样的:


decoration: BoxDecoration(
    color: (user != null
           && user.userActive == 1) || !item.forActiveUsers ? Colors.white : Colors.grey,
    borderRadius: BorderRadius.all(Radius.circular(5.0)), 
    boxShadow: [
      BoxShadow(
        blurRadius: 0.5,
        color: Colors.black,
        offset: Offset(0.0, 0.0),
      )
    ]),

已更新