select a listview on long press in flutter code example

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),),),);}}

Tags:

Misc Example