在ListView.builder中改变颜色



ListView.builder颜色变化

当我到达布局时,我填充了列表,这个列表被传递给ListView并绘制,也就是说,当你将模式更改为夜间时,瓷砖的颜色不会改变,直到你切换到布局或直到你强制重新绘制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

最新更新