📜  Flutter – 实现滑动关闭功能

📅  最后修改于: 2021-09-02 05:54:08             🧑  作者: Mango

我们在许多移动应用程序中都使用了滑动关闭功能。在本文中,我们将创建一个项目列表并在其中执行滑动以将其关闭。当我们想使用 swipe 关闭内容时,我们可以借助swipe在flutter关闭小部件。通常,当我们有一个项目列表并且当我们想要删除一个任务时,我们会使用它,然后我们只需使用向左滑动或向右滑动即可关闭它。在本文中,我们使用ListView.builder创建了一个项目列表当一个项目被关闭时,Snackbar 将显示一条消息“项目已成功关闭”。

按照以下步骤实现滑动关闭:

第 1 步:创建一个新的flutter应用程序。

flutter create 

第二步:从main中删除默认代码。dart文件。

第 3 步:在main.js 中创建如下所示的项目列表。dart文件。

第 4 步:在 main.js 中使用以下代码。dart文件:

Dart
import 'package:flutter/material.dart';
  
void main() => runApp(MyApp());
  
class MyApp extends StatelessWidget {
  
  // This widget is
  //the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Swipe to dismiss',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: new MyPage(),
      debugShowCheckedModeBanner: false,
    );
  }
}
  
class MyPage extends StatelessWidget {
  final List items =
  new List.generate(80, (i) => "Item ${i + 1}");
  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      backgroundColor: Colors.lightBlue[50],
      appBar: new AppBar(
        title: new Text("Swipe to dismiss"),
        backgroundColor: Colors.green,
        actions: [
          Text("GFG", textScaleFactor: 3),
        ],
      ),
      body: new ListView.builder(
        itemCount: items.length,
        itemBuilder: (context, int index) {
          return new Dismissible(
            key: new Key(items[index]),
            onDismissed: (direction) {
              items.removeAt(index);
              Scaffold.of(context).showSnackBar(
                  new SnackBar(content: new Text("Item dismissed successfully")));
            },
            background: new Container(
              color: Colors.red,
            ),
            child: Container(
              child: new ListTile(
                leading: Icon(Icons.list),
                title: new Text("GFG " + "${items[index]}"),
                trailing: Icon(Icons.done_all,color: Colors.green,),
              ),
            ),
          );
        },
      ),
    );
  }
}


解释:

  • 创建项目列表
  • 使用itemBuilder构建Dismissible
  • 对列表项执行onDismissed操作。

输出:

当我们构建一个项目列表时,它会得到:

当任何列表项被滑动时,它会被删除,当该项目从列表中消失时,带有“项目已成功关闭”消息的Snackbar将显示如下: