Select Items in a ListView in Flutter - with a Trailing Icon

This Article is posted by seven.srikanth at 10/29/2019 5:08:40 PM

In this example, I'm going to share an example of how to select items in a ListView with a Trailing Icon. Here is how the output of the program is going to look like. You can see the items are turned into blue and a checkbox with a check Icon appears on long press. This Check Icons, actually makes the selected item more recognizable when it's long pressed. ![](https://fluttercentral.com/Uploads/bb91d186-1d6e-4722-86fd-0bfa10afa157.gifwidth="50%height="auto]( In order to achieve this, I've taken advantage of onLongPress method available in ListTile. Here is the full code from main.dart file. Copy-paste and run the program to see the above output. runApp(MyApp()); class MyApp extends StatefulWidget { @override _MyAppState createState() => _MyAppState(); } class _MyAppState extends State { double padValue = 0; List paints = [ Paint(1, 'Red', Colors.red), Paint(2, 'Blue', Colors.blue), Paint(3, 'Green', Colors.green), Paint(4, 'Lime', Colors.lime), Paint(5, 'Indigo', Colors.indigo), Paint(6, 'Yellow', Colors.yellow) ]; @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: Text("Selectable ListView Example"), ), body: ListView( children: List.generate(paints.length, (index) { return ListTile( onLongPress: () { setState(() { paints[index].selected = !paints[index].selected; log(paints[index].selected.toString()); }); }, selected: paints[index].selected, leading: GestureDetector( behavior: HitTestBehavior.opaque, onTap: () {}, child: Container( width: 48, height: 48, padding: EdgeInsets.symmetric(vertical: 4.0), alignment: Alignment.center, child: CircleAvatar( backgroundColor: paints[index].colorpicture, ), ), ), title: Text('ID: ' + paints[index].id.toString()), subtitle: Text(paints[index].title), trailing: (paints[index].selected) ? Icon(Icons.check_box) : Icon(Icons.check_box_outline_blank), ); }), ), ), ); } } class Paint { final int id; final String title; final Color colorpicture; bool selected = false; Paint(this.id, this.title, this.colorpicture); } Hope this will be useful to you. Thanks, Srikanth

Tags: Select items in ListView; OnLongPress ListTile; ListView Example; add icon to ListView;



0 Comments
Login to comment.
Recent Comments

Be the first to Comment. You can ask a Query or Share your toughts or Just say thanks.




© 2018 - Fluttercentral | Email to me - Seven.srikanth@gmail.com