Flutter开发,在一个页面上有多个图标,如何实现长按一个图标,所有图标右上角有叉?

发布于 2022-09-13 00:07:35 字数 169 浏览 19 评论 0

我想实现这样一个功能,在一个页面上有多个图标,实现长按一个图标,所有图标右上角有叉,能够实现删除一些不要的图标

问题描述

问题出现的环境背景及自己尝试过哪些方法

相关代码

粘贴代码文本(请勿用截图)

你期待的结果是什么?实际看到的错误信息又是什么?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

对你再特殊 2022-09-20 00:07:35

1. 长按任意图标,所有图标可编辑

伪代码如下,这样就实现了长按任意一个图标,所有图标右边出现一个x(具体是右边还是右上角之类的,自己写布局代替Row即可)

bool isEdit = false;

List<Widget> list = [
    GestureDetector(
        child: isEdit?
                Row(children:[Icon(a),Icon(close)]):
                Icon(a),
        onLongPress: handleEdit,
    ),
    GestureDetector(
        child: isEdit?
                Row(children:[Icon(b),Icon(close)]):
                Icon(b),
        onLongPress: handleEdit,
    )
]

void handleEdit(){
    setState(()=>isEdit=true);
}

2. 点击删除功能,改造一下每个Widget的Row,伪代码如下

Row(children:[Icon(a),GestureDetector(
                         child: Icon(close),
                         onTap: handleDel(index)
                      )]);

void handleDel(index){
    setState(()=>{
        list.removeIndex(index);
    });
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文