动态图像列表,其中包含换行符行之间没有空格,允许长按图像以打开“编辑”选项-Flutter

问题描述

我收到了要动态显示的图像列表,每行4个项目。如果有5个itens,则该行应环绕。关键是,我需要图像允许长按以打开appBar中的编辑按钮。渴望按下时,除了编辑按钮外,还应允许多次选择其他图像。

代码是否可以适用于此:

class cardy extends StatefulWidget {
  @override
  _cardyState createState() => new _cardyState();
}

class _cardyState extends State<cardy> {
  var isSelected = false;
  var mycolor=Colors.white;

  @override
  Widget build(BuildContext context) {
    return new Card(
      color: mycolor,child: new Column(mainAxisSize: MainAxisSize.min,children: <Widget>[
        new ListTile(
            selected: isSelected,leading: const Icon(Icons.info),title: new Text("Test"),subtitle: new Text("Test Desc"),trailing: new Text("3"),onLongPress: toggleSelection // what should I put here,)
      ]),);
  }

  void toggleSelection() {
    setState(() {
      if (isSelected) {
        mycolor=Colors.white;
        isSelected = false;
      } else {
        mycolor=Colors.grey[300];
        isSelected = true;
      }
    });
  }
}

解决方法

是的,此代码可用于;;

首先,请检查SliverGrid类。

https://api.flutter.dev/flutter/widgets/SliverGrid-class.html

这是一个(不完整的)代码片段,可以帮助您入门,但是您必须指定要使用的选项,因为这不会复制并粘贴来解决您的问题:

SliverGrid(
        gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent(
        maxCrossAxisExtent: 200.0,mainAxisSpacing: 5,crossAxisSpacing: 3,crossAxisCount,),delegate: SliverChildBuilderDelegate(
      (BuildContext context,int index) {
        return Container()})),

我会注意到,如果您要使用收集的信息,即选择的图像,请务必将这些信息存储在某个地方。也就是说,您的示例切换了单个项目的选择,但是以后如何获取该信息?也就是说,如果单击3个项目然后单击“编辑”,则需要一种方法来记录已选择了3个项目。一种选择是维护列表,并在切换中添加/删除/添加。