Dart (颤振)在栅格视图生成器中选择对项目的效果
我已从sqflite数据库将项目加载到GridView.builder中。当然,因为它的模型类不是有状态的,所以我无法从那里创建对项目的选择效果 我所说的选择效应是指: 当用户点击某个项目时,它被选中Dart (颤振)在栅格视图生成器中选择对项目的效果,dart,flutter,Dart,Flutter,我已从sqflite数据库将项目加载到GridView.builder中。当然,因为它的模型类不是有状态的,所以我无法从那里创建对项目的选择效果 我所说的选择效应是指: 当用户点击某个项目时,它被选中 GridView.builder( gridDelegate:....., itemBuilder: (BuildContext context, int index) { bool _selectItem
GridView.builder(
gridDelegate:.....,
itemBuilder: (BuildContext context, int index) {
bool _selectItem = false;
return Stack(
children: <Widget>[
itemsList[index]), //====Actual Item=====//
InkWell(onTap: () { //===To create Select Effect====//
setState(() {
if (_selectItem == false) {
_selectItem = true;
print("Item Selected");
} else {
_selectItem = false;
print("Item UnSelected");
}
});
},
child: Opacity(
opacity: _selectItem == true ? 0.5 : 0.0,
child: Icon(Icons.select)
),]); },
itemCount: itemsList.length,
))
GridView.builder(
gridDelegate:。。。。。,
itemBuilder:(构建上下文,int索引){
bool _selectItem=false;
返回堆栈(
儿童:[
项目列表[索引],/==实际项目=====//
InkWell(onTap:(){/==创建选择效果====//
设置状态(){
如果(_selectItem==false){
_selectItem=true;
打印(“所选项目”);
}否则{
_selectItem=false;
打印(“未选择的项目”);
}
});
},
子对象:不透明度(
不透明度:_selectItem==true?0.5:0.0,
子:图标(图标。选择)
),]); },
itemCount:itemsList.length,
))
我可以创建选择效果,但如果我点击任何一个项目,它会选择所有项目。如何为每个项目创建选择效果
那么,如何为每个项目创建选择效果呢
注意:我只在代码中写了相关的内容,因为itemList
索引
未对选择和取消选择进行管理,
从sqflite数据库加载到GridView.builder中的项目数据,
您可以通过本地变量手动管理选择到GridView中
您需要在项目表中插入选择字段,而不是局部变量,
首次将项插入表时,默认值项为false
InkWell(onTap: () { //===To create Select Effect====//
setState(() {
itemList[index].selectItem = !itemList[index].selectItem
});
},
然后在onTap之后管理项目选择