Example 1: item selection in list view in flutter
import 'dart:developer';
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
double padValue = 0;
List<Paint> paints = <Paint>[
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);
}
Example 2: highlight/un-highlight the selected interest upon pressed in flutter
import 'package:flutter/material.dart';import 'package:swipe_listview_selection/list_item_model.dart';class MyHomePage extends StatefulWidget {@override_MyHomePageState createState() => _MyHomePageState();}class _MyHomePageState extends State<MyHomePage> {List<ListItem<String>> list;@overridevoid initState() {super.initState();populateData();}void populateData() {list = [];for (int i = 0; i < 10; i++) list.add(ListItem<String>("item $i"));}@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text("List Selection"),),body: ListView.builder(itemCount: list.length,itemBuilder: _getListItemTile,),);}Widget _getListItemTile(BuildContext context, int index) {return GestureDetector(onTap: () {if (list.any((item) => item.isSelected)) {setState(() {list[index].isSelected = !list[index].isSelected;});}},onLongPress: () {setState(() {list[index].isSelected = true;});},child: Container(margin: EdgeInsets.symmetric(vertical: 4),color: list[index].isSelected ? Colors.red[100] : Colors.white,child: ListTile(title: Text(list[index].data),),),);}}