-
Notifications
You must be signed in to change notification settings - Fork 26.8k
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
TableView: Hovering over an InkWell while scrolling fast causes exceptions. #138977
Comments
This seems to happen for any widget that has ink splashes, like buttons. |
Reproducible using the code sample provided above. I tested on stable 3.13, 3.16 and master and it did not reproduce on stable 3.13 but it reproduced on 3.16 and master. flutter doctor -v
|
cc @Piinks |
Came across this bug now when using |
Ah ok! Thanks for checking! |
This bug still exists in the latest version 3.19 @Piinks |
Still Reproducible in 0.1.1 version @Piinks. |
I have updated the code sample to be compatible with The issue still persists in combination with |
I possibly have a fix for this issue here gawi151@8159881. At the moment I'm not sure if this is the correct fix. Running Maybe someone with better understanding of 2d viewport could look at it? cc: @Piinks |
Hey @gawi151 thanks for looking into this! That looks like the right fix to me, well done finding it! |
@Piinks I'll try to do it in this or next week (if that's ok). And if I won't be able to do it in reasonable time I'll let you know 😉 |
…n no longer should be kept alive) (flutter#148298) - Fixes a child not removed from `_keepAliveBucket` when widget is no longer kept alive offscreen. Bug was triggering assert in performLayout. - Adds test to cover the case from bug report Fixes flutter#138977
…n no longer should be kept alive) (flutter#148298) - Fixes a child not removed from `_keepAliveBucket` when widget is no longer kept alive offscreen. Bug was triggering assert in performLayout. - Adds test to cover the case from bug report Fixes flutter#138977
This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of |
Is there an existing issue for this?
Steps to reproduce
Using the provided code sample:
flutter run -d macos
(chrome
works too, or possibly any target where a mouse pointer is present).Expected results
I would expect to be able to use
Inkwell
and similar widgets without any issues as in other scrollable widgets.Actual results
Scrolling over a large number of cells containing
InkWell
widgets in quick succession, while hovering over any of them, causes exceptions to be thrown.After upgrading to Flutter v3.16.0, this issue started occurring.
I was not able to reproduce this issue in Flutter v3.13.9.
I was able to reproduce this on both macOS and in Chrome.
There are two exceptions that occur:
Null check operator used on a null value
when callingRenderTableViewport#parentDataOf
.The paint extent of the child has not been determined yet.
when checking if the cell is visible.Thoughts:
InkWell
when exiting the viewport before its next state is set.InkWell
'sonTap
is omitted in the provided example, no exceptions occur.A workaround for now is to use
GestureDetector
and forgo ink feedback, but this is not an ideal user experience.Code sample
Code sample
Screenshots or Video
Screenshots / Video demonstration
Screen.Recording.2023-11-24.at.14.27.53.mov
Logs
Logs
Flutter Doctor output
Doctor output
The text was updated successfully, but these errors were encountered: