专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

Flutter侧滑删除等功能

我们之前看到淘宝有种商品列表侧滑删除功能,今天来用Flutter实现下,直接进入正题。

1,添加依赖

flutter_slidable: 0.5.3

2,获取依赖

flutter pub get

3,导入依赖

import 'package:flutter_slidable/flutter_slidable.dart';

4,创建列表式侧滑

import 'package:flutter/material.dart';
import 'package:flutter_slidable/flutter_slidable.dart';
import 'package:oktoast/oktoast.dart';

///create time : 2019/9/18/018  16:00
///create by : Administrator
///des:

class MyListSlidable extends StatefulWidget {
  @override
  _MyListSlidableState createState() => _MyListSlidableState();
}

class _MyListSlidableState extends State<MyListSlidable> {
  List<int> datas = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];

  Widget _itemBuilder(BuildContext context, int position) {
    return Container(
      margin: EdgeInsets.all(5.0),
      child: Slidable(
        key: Key(datas[position].toString()),
        actionPane: SlidableDrawerActionPane(),
        actionExtentRatio: 0.25,
        child: Container(
          height: 80,
          width: double.infinity,
          color: Colors.blue,
          alignment: Alignment.center,
          child: Text(
            "product${datas[position]}",
            style: TextStyle(color: Colors.white),
          ),
        ),
        actions: <Widget>[
          IconSlideAction(
            caption: '归档',
            color: Colors.blue,
            icon: Icons.archive,
            onTap: () => showToast('Archive'),
            closeOnTap: false,
          ),
          IconSlideAction(
            caption: '分享',
            color: Colors.indigo,
            icon: Icons.share,
            onTap: () => showToast('Share'),
          ),
        ],
        secondaryActions: <Widget>[
          IconSlideAction(
            caption: '更多',
            color: Colors.black45,
            icon: Icons.more_horiz,
            onTap: () => showToast('More'),
          ),
          IconSlideAction(
            caption: '删除',
            color: Colors.red,
            icon: Icons.delete,
            onTap: () => showToast('delete'),
          ),
        ],
      ),
    );
  }

  @override
  Widget build(BuildContext context) {
    return Container(
      child:
          ListView.builder(itemBuilder: _itemBuilder, itemCount: datas.length),
    );
  }
}

5,效果图:

#

130_1.png

6,说明

侧滑面板中动作按钮分两种样式

  • 带图标文字样式:IconSlideAction
  • 只包含文字:SlideAction

动作面板样式分四种:

SlidableBehindActionPane :这种效果就好像是面板被盖在列表子项的下面一层,有层次之分的效果

130_2.png

SlidableScrollActionPane:这种效果是面板跟在列表子项后面,没有叠加、层次、挤压效果等

130_3.png

SlidableDrawerActionPane:这种效果就是两个面板在列表子项后面,但是面板产生叠加效果

130_4.png

SlidableStrechActionPane:这种效果也是面板跟在列表子项后面,面板收缩产生挤压的效果

130_5.png

文章永久链接:https://tech.souyunku.com/43165

未经允许不得转载:搜云库技术团队 » Flutter侧滑删除等功能

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们