Lock action-pane intent for a continuous drag until neutral settle

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

I maintainer di solito rispondono entro 1 giorno

@lukemmtt ci sta già lavorando.

Dal 23/4/2026.

  • #547 di @lukemmtt — aperta

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
25/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Ferma
Stack tecnologico
dart, flutter
Ambito
frontend

Direzione di ricerca

Reproduce by opening a slidable with both start and end panes, then dragging past one pane and reversing through neutral without releasing. Check PR #547, which already targets this fix, before starting. Done means the pane intent stays locked for the whole drag, overscroll past neutral shows only a resisted offset, and release animates back to neutral.

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

Descrizione

Summary

A continuous drag can currently switch from one action pane to the other after crossing back through neutral in the same interaction.

Repro
  1. Open a slidable with both start and end panes.
  2. Drag far enough to infer one pane.
  3. Without releasing, reverse direction past neutral.

Before: the opposite pane activates during one continuous drag

Current behavior

The originally inferred pane can disappear and the opposite pane can become active mid-drag.

Expected behavior

Drawer intent should be inferred once for the interactive drag lifecycle, then stay locked until the user releases and the slidable settles back at neutral.

Dragging past neutral during that same interaction should only show a small resisted rubber-band offset, not activate the opposite pane.

If the user releases from that overscrolled state, the child should animate back to neutral rather than jump.

Here's an example of the desired behavior, as seen from the Apple Notes app:

Before: the opposite pane activates during one continuous drag

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.