-
Notifications
You must be signed in to change notification settings - Fork 70
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
When I just tap on the screen, the refresh indicator appears unexpectedly #62
Comments
Hello, I’ve been working further on the refresh indicator issue and have managed to come up with a solution. Although I was able to make it so that the refresh indicator only appears when you drag it down, the implementation doesn’t seem very clean. I’m also unsure if this was the intended approach or if there might be a more straightforward method. Here's what I’ve come up with: // More code ...
durations: const RefreshIndicatorDurations(
completeDuration: Duration(seconds: 3),
),
useMaterialContainer: false, // This is required cuz the Material widget pops up unexpectedly, which causes the problem to persist.
indicatorBuilder: (
BuildContext context,
IndicatorController controller,
) {
// Other things ....
if ((controller.value > 0 && controller.isDragging) || controller.isComplete || controller.isFinalizing || controller.isLoading || controller.isArmed) {
return AnimatedContainer(
decoration: BoxDecoration( // Manually added since I don't have the shadows from MaterialContainer
color: style.background,
shape: BoxShape.circle,
boxShadow: [
BoxShadow(
color: style.background.withOpacity(0.5),
blurRadius: 8,
spreadRadius: 2,
),
],
),
//widget logic...
),
}
return const SizedBox();
} The Debugging output for the condition Thus, this means the state is true in every situation where it should be. |
Hi @MrTadeu 👋 |
Can you share the full widget tree code? |
I can confirm I have this same issue. |
Hello,
I've been working with the CheckMarkIndicator example from your repository (there are really awesome exemples 🤩, btw), and I have encountered an issue.
For context, I set the edgeOffset like this:
To position the indicator where I want it. However, whenever I simply tap on the screen, the refresh indicator appears briefly.
Here are the logs from debugging:
I/flutter ( 6309): Controller value: 0.0
I/flutter ( 6309): Controller state: IndicatorState.dragging
I initially tried to adjust the trigger conditions and triggerMode, but those changes did not resolve the issue. As a workaround, I updated the notificationPredicate to:
This change provides the correct boolean value during debugging (alternating between true and false as expected), but the indicator stops showing up and it doesn't works anymore - perhaps it's only constructed once and not rebuilt properly. I even tried to transforming it into something like
bool statement = (notification is ...)
and then wrapped in a setState.Here’s a visual of the problem:

Is there a known fix or any recommendations for properly handling the refresh indicator without it appearing unexpectedly on tap?
Thank you a lot in advance!
The text was updated successfully, but these errors were encountered: