Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart (颤振)在栅格视图生成器中选择对项目的效果_Dart_Flutter - Fatal编程技术网

Dart (颤振)在栅格视图生成器中选择对项目的效果

Dart (颤振)在栅格视图生成器中选择对项目的效果,dart,flutter,Dart,Flutter,我已从sqflite数据库将项目加载到GridView.builder中。当然,因为它的模型类不是有状态的,所以我无法从那里创建对项目的选择效果 我所说的选择效应是指: 当用户点击某个项目时,它被选中 GridView.builder( gridDelegate:....., itemBuilder: (BuildContext context, int index) { bool _selectItem

我已从sqflite数据库将项目加载到GridView.builder中。当然,因为它的模型类不是有状态的,所以我无法从那里创建对项目的选择效果

我所说的选择效应是指:

当用户点击某个项目时,它被选中

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之后管理项目选择