目前在 SingleChildScrollView 中有 7 个 GestureDetector 和 Container 来表示吉他琴颈和音符。在每个容器 Gesture Detector 中,我将项目索引添加到列表中,使用此列表我可以使项目更改颜色,表明它已被选中。现在一切正常,除了我必须刷新容器的应用程序以更新所选项目。
这是我的手势检测器和容器代码
GestureDetector(
onTap: () {
if(selectedHighE.contains(index)){
selectedHighE.remove(index);
print("removed " + index.toString() + " from " + selectedHighE.toString());
}else{
selectedHighE.add(index);
print("added " + index.toString() + " to " + selectedHighE.toString());
};
},
child: Container(
width: 50,
height: 35,
alignment: Alignment.center,
decoration: BoxDecoration(
color: _change(hiENotes, index, selectedHighE),
border: Border.all(
color:
_borderColor(hiENotes, index))),
child: Text(hiENotes[index],
style: TextStyle(
color: _textColor(hiENotes, index),
fontSize: size))),
),
因此,我的意图是 _change() 将使用当前项目的索引和当前选定项目的列表来确定是否应该更改容器。但是,正如我所说,功能在那里我只需要一些在 onTap() 之后刷新子容器的方法。
提前致谢