Listview Item Swpie

edited December 2021 in Flutter

import 'package:flutter/foundation.dart';

import 'package:flutter/material.dart';


void main() {

 runApp(const MyApp());

}


// MyApp is a StatefulWidget. This allows updating the state of the

// widget when an item is removed.

class MyApp extends StatefulWidget {

 const MyApp({Key? key}) : super(key: key);


 @override

 MyAppState createState() {

   return MyAppState();

 }

}


class MyAppState extends State<MyApp> {

 final items = List<String>.generate(1, (i) => 'Item ${i + 1}');


 @override

 Widget build(BuildContext context) {

   const title = 'Dismissing Items';


   return MaterialApp(

     title: title,

     theme: ThemeData(

       primarySwatch: Colors.blue,

     ),

     home: Scaffold(

       appBar: AppBar(

         title: const Text(title),

       ),

       body: ListView.builder(

         itemCount: items.length,

         itemBuilder: (context, index) {

           final item = items[index];

           return Dismissible(

             // Each Dismissible must contain a Key. Keys allow Flutter to

             // uniquely identify widgets.

             key: Key(item),

             // Provide a function that tells the app

             // what to do after an item has been swiped away.

             onDismissed: (direction) {

               // Remove the item from the data source.

               setState(() {

                 items.removeAt(index);

               });


               // Then show a snackbar.

               ScaffoldMessenger.of(context)

                   .showSnackBar(SnackBar(content: Text('$item dismissed')));

             },

             // Show a red background as the item is swiped away.
background: Container(
    alignment: Alignment.centerLeft,
    padding: const EdgeInsets.all(5.0),
    decoration: BoxDecoration(
        color: red,
        borderRadius: BorderRadius.circular(10.0)),
    child: Icon(Icons.delete_sweep,
        color: Colors.white)),

secondaryBackground: Container(
    alignment: Alignment.centerRight,
    padding: const EdgeInsets.all(5.0),
    decoration: BoxDecoration(
        color: green,
        borderRadius: BorderRadius.circular(10.0)),
    child: Icon(Icons.bookmark_remove,
        color: Colors.white)),


             child: ListTile(

               title: Text(item),

             ),

           );

         },

       ),

     ),

   );

 }

}

Sign In or Register to comment.