ListView.builder 的颜色变化

Color change in ListView.builder

ListView.builder

颜色变化

当我到达我填写List的布局时,这个List被传递给ListView并绘制,也就是说,当你将模式更改为夜间时,tile的颜色不会改变,直到你切换到布局或者直到您强制重绘 ListView 本身。

问题是如何更改已呈现的 ListView 元素的颜色

创建ListView如下:

Widget _taskListView() {
    return ListView.builder(
      itemCount: _task.length,
      itemBuilder: (contextItems, index) {
        return _task[index];
      },
    );
  }

这是卡片本身,属于元素列表:

Widget _cardTask(BuildContext context, int index, TaskModel taskModel) {
    return Padding(
      padding: EdgeInsets.only(top: 10.0, left: 5.0, right: 5.0),
      child: InkWell(
        hoverColor: customRed,
        onTap: () {
          Navigator.push(context,
              MaterialPageRoute(builder: (context) => SetTimeScreen(taskModel))
          );
        },
        child: Container(
          height: 80,
          decoration: BoxDecoration(
            boxShadow: [
              BoxShadow(
                color: Colors.black12,
                blurRadius: 6.0,
                offset: Offset(0, 2),
              )
            ],
            color: OtherStaticData.darkMode ? customGray50 : Colors.white,
            borderRadius: BorderRadius.all(const Radius.circular(15.0)),
          ),
          child: _cardTaskBody(context, taskModel),
        ),
      ),
    );
  }

问题的解决方案成为架构模式BLoC