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

Open
#546 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

@lukemmtt is already working on this.

Since Apr 23, 2026.

  • #547 by @lukemmtt — open

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
25/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Stale
Tech stack
dart, flutter
Domain
frontend

Research direction

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.

Written by the indexing model from the issue text.

Description

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

Dominant language
Dart
Stars
2.9k
Forks
646
Avg merge
5m
Merged PRs (30d)
9

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from letsar/flutter_slidable

All issues in letsar/flutter_slidable

Similar issues

More Dart issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.