Slidable open Not effective ?

Aperta
#455 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
Mezza giornata
Idoneità per principianti
25/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
dart
Ambito
mobile

Direzione di ricerca

The reporter's snippet wraps Slidable in a GestureDetector, so the context in onLongPress sits above the Slidable subtree and Slidable.of(context) returns null. Start by reading how Slidable.of looks up its ancestor in the package source, then reproduce with a minimal ListView like the one in the issue. Done means either a documented pattern for opening a pane from outside the item, such as a Builder inside child, or a clearer failure than a silent null. The issue is over 1,000 days old with no comments, and the desired behaviour is not settled, so confirm the scope with a maintainer first.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

When I can't open ActionPanel for a long time.

Here is my main code:

ListView.builder(
                itemCount: myPositions.length,
                padding: EdgeInsets.zero,
                itemBuilder: (ctx, index) {
                  return GestureDetector(
                    onLongPress: () {
                       Slidable.of(context)?.openEndActionPane();
                    },
                    child: Slidable(
                      groupTag: MyPositionView.routeName,
                      key: ValueKey(index),
                      direction: Axis.horizontal,
                      endActionPane: ActionPane(
                        extentRatio: 0.2,
                        motion: const ScrollMotion(),
                        children: [
                          Builder(builder: (context) {
                            return Container(
                              margin: EdgeInsets.symmetric(vertical: 6.w),
                              child: Column(
                                children: [
                             
                                  Expanded(
                                    child: TextButton(
                                      onPressed: () => deletePosition(index, context),
                                      style: TextButton.styleFrom(
                                        backgroundColor: const Color(0xff4077DE),
                                        foregroundColor: Colors.white,
                                      ),
                                      child: const Icon(Icons.delete_forever),
                                    ),
                                  ),
                                ],
                              ),
                            );
                          }),
                        ],
                      ),
                      child: MyWidget(),
                    ),
                  );
                },
              )

It is very unreasonable to ensure that the context can only be used with Slidable. of (context).

Lingua principale
Dart
Stelle
2.9k
Fork
646
Merge medio
5m
PR unite (30g)
9

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di letsar/flutter_slidable

Tutte le issue di letsar/flutter_slidable

Issue simili

Altre issue su Dart

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.