ReoderableListView et widget editable

Bonjour à tous,

J’ai mis en place une ReorderableListView qui affiche un widget éditable : Mon widget a deux états : Soit il affiche le titre du widget, soit quand il est en mode editable il y a un TextFormField pour modifier le titre. (Il fera plus de chose plus tard, donc le besoin est bien de faire ca)

Tout fonctionnait bien avec une ListView classique, cependant quand je suis passé à la ReorderableListView, lorsque je passe en mode éditable sur un des Widget et que je « tap » sur ce dernier pour l’éditer (ou même sur un autre widget de la list), le widget repasse en mode non éditable : son statut initial. Je souhaite qu’il reste en mode éditable jusqu’à ce que j’utilise le bouton de validation dédié pour ca.

Je pense que le problème vient du callBack onReorder qui doit s’activer dès qu’on touche un widget de la List et donc remettre le widget dans son état intiale (mais j’en suis pas sur :joy: :joy:)

ReorderableListView.builder(
      itemBuilder: _blockBoxBuilder,
      itemCount: widget.viewModel.blocks.length,
      onReorder: widget.viewModel.updateBlocksOrder,
                          ),
@override
  void updateBlocksOrder(int oldIndex, int newIndex) {
    myObject.modifyBlockOrder(oldIndex, newIndex);
    // notifyListeners(); J'ai éssayé d'enlever le notifyListener mais le problème reste le même.
  }
void modifyBlockOrder(int oldIndex, int newIndex) {
    //Isar define list as ungrowable so this code is necessary
    List<Block> newBlocks = List<Block>.from(blocks);
    //adjustment needed to moove the block down the list
    if (oldIndex < newIndex) {
      newIndex--;
    }
    //get the block we are moving
    final block = newBlocks.removeAt(oldIndex);
    //place the block in the new position
    newBlocks.insert(newIndex, block);
    blocks = newBlocks;
  }


Est ce que quelqu’un a déjà eu ce problème et a trouvé une solution ?

Je mets à jour ce sujet.

Un « contournement » mis en place est le suivant :
J’ai intégré le booléen qui permet de basculer entre editable et non editable comme variable du myObject. Ainsi lorsque l’écran se reconstruit au moment de toucher le widget, ce dernier prend la valeur qui est enregistrée dans l’objet.

Ca crée un autre problème : la mise à jour du titre du widget ne fonctionne plus. Mais ca doit être un petit ajustement à faire dans le code moins en lien avec le problème initiale :wink:

Si jamais ca aide quelqu’un je pense que cette solution fonctionne :wink: