android - 滑动列表项以获取更多选项(Flutter)

前几天我决定为 Pinterest 的应用程序选择一个 Ui 来练习使用 Flutter 构建应用程序,但我坚持使用在水平拖动时显示“更多”和“删除”按钮的 slider 。 Picture on the right .

我没有足够的知识来使用手势结合动画来在 flutter 中创建这样的东西。这就是为什么我希望你们中的某个人可以为像我这样的每个人做一个例子,我们可以理解如何在 ListView.builder 中实现这样的东西。

(Source)

来自 macOS 邮件应用程序的 gif 示例:

最佳答案

我创建了一个包来进行这种布局:flutter_slidable (感谢 Rémi Rousselet 的基本想法)

使用此软件包,可以更轻松地为列表项创建上下文操作。例如,如果您想创建您描述的那种动画:

您将使用此代码:

new Slidable(
  delegate: new SlidableDrawerDelegate(),
  actionExtentRatio: 0.25,
  child: new Container(
    color: Colors.white,
    child: new ListTile(
      leading: new CircleAvatar(
        backgroundColor: Colors.indigoAccent,
        child: new Text('$3'),
        foregroundColor: Colors.white,
      ),
      title: new Text('Tile n°$3'),
      subtitle: new Text('SlidableDrawerDelegate'),
    ),
  ),
  actions: <Widget>[
    new IconSlideAction(
      caption: 'Archive',
      color: Colors.blue,
      icon: Icons.archive,
      onTap: () => _showSnackBar('Archive'),
    ),
    new IconSlideAction(
      caption: 'Share',
      color: Colors.indigo,
      icon: Icons.share,
      onTap: () => _showSnackBar('Share'),
    ),
  ],
  secondaryActions: <Widget>[
    new IconSlideAction(
      caption: 'More',
      color: Colors.black45,
      icon: Icons.more_horiz,
      onTap: () => _showSnackBar('More'),
    ),
    new IconSlideAction(
      caption: 'Delete',
      color: Colors.red,
      icon: Icons.delete,
      onTap: () => _showSnackBar('Delete'),
    ),
  ],
);

https://stackoverflow.com/questions/46651974/

相关文章:

flutter - 如何在 Flutter 中添加图片

dart - flutter : Bad state: Stream has already bee

flutter - 如何强制重启 Flutter 应用程序(在生产模式下)?

flutter - 另一个异常被抛出 : type 'MyApp' is not a subtype

dart - 在没有动画的情况下替换 MaterialApp 中的初始路由?

flutter - Flutter中的primaryColor和primarySwatch有什么区别

flutter - Flutter-建立游戏的良好基础吗?

flutter - Flutter 中的 BottomNavigationBar 样式

flutter - Flutter 中的生命周期

dart - Flutter 在 initState 方法中获取上下文