reorderable_grid icon indicating copy to clipboard operation
reorderable_grid copied to clipboard

SliverReorderableGrid indexes correct, grid not updating

Open 414nc14rk3 opened this issue 11 months ago • 0 comments

The example using ReorderableGridView.extent works as expected, SliverReorderableGrid has no example.

I've put together the following based on issue 4, Card() becomes drag-able.

Problem is when dropping the Card(), the values in the grid do not change, as if the drop never completes the values in the grid remain in original order, while the output of items shows the correct expected order, how can i get the grid values to reflect new state correctly?

import 'package:flutter/material.dart';
import 'package:reorderable_grid/reorderable_grid.dart';

void main() => runApp(const MyApp());

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

  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  final items = List<int>.generate(40, (index) => index);

  void _onReorder(int oldIndex, int newIndex) {
    setState(() {
      final item = items.removeAt(oldIndex);
      items.insert(newIndex, item);
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
          body: CustomScrollView(
        slivers: [
          SliverReorderableGrid(
              itemCount: items.length,
              itemBuilder: (context, index) =>
                  ReorderableGridDelayedDragStartListener(
                    index: index,
                    key: ValueKey(index),
                    child: Center(
                      child: Text(index.toString()),
                    ),
                  ),
              gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(
                crossAxisCount: 3,
                childAspectRatio: 3 / 5,
                mainAxisSpacing: 10.0,
                crossAxisSpacing: 10.0,
              ),
              onReorder: _onReorder)
        ],
      )),
    );
  }
}

414nc14rk3 avatar Mar 10 '24 18:03 414nc14rk3