You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I wrote InteractiveViewer in #56409 to support rotation, but I removed the feature to speed up development. I plan to revisit it and finish the rotation feature. The part that still needs work is how it interacts with boundaryMargin, and there is a TODO in the code explaining more and referencing this issue.
Excuse me Justin @justinmc , maybe not related but does the InteractiveViewer renders on-demand? If this is not related here, let me move this comment to an appropriate place :)
I mean I have been building a Google Spreadsheet kinda widget that I call "AdvancedTable" for a long time.
It consists of dynamically added, removed columns (which are separate ListView.builder() actually). I use the .builder() method for rendering thousands of cells on-demand for avoiding performance issues.
The columns can be frozen as well as headers. So there is a frozen are and a scrollable are which allows vertical and horizontal scrolling. However, as you can guess, it is not smooth. I can go with scroll locking (when you start scrolling vertically, it won't start scrolling horizontally vice versa). However, scroll locking is not available.
I wonder if I can wrap the scrollable area of my table with your InteractiveView and have no performance issues. I'll give it a try but is there anything you can say to me?
@yasinarik I haven't built anything into InteractiveViewer to handle rendering on-demand, unfortunately. So I would guess that switching to InteractiveViewer wouldn't give you any performance benefit. Are you hoping for something like ListView.builder?
P.S. I was thinking about adding scroll locking to InteractiveViewer. It might be a good near-term feature to add.
Are there any analogues in Flutter at the moment? I need a container with these functions: movement, zoom, rotation. And I need the ability to set the minimum and maximum scale. I'm really looking forward to the rotation support in InteractiveViewer!
@doppio Unfortunately it's probably not likely for the next stable release (9/7 cutoff). Thanks for the comment though, this gives me some more motivation to get it done. I'll make sure this issue is up to date.
Reacted by Kithe, Kopiás Csaba, Yannick Pulver, Bryson Thill, Mạnh Đạt and seanmamasde
@hacker1024 You mentioned wanting a rotation gesture for MacOS and iPadOS in #64210 (comment). Do you have an opinion of what that would be? Maybe like option + scroll or something?
I am making a painting tool and using the InteractiveViewer as the canvas container, currently has two finger drag, zoom function. I would be grateful if InteractiveViewer could support rotation.
@justinmc Any update or special reasons on why this is still not working after two years? Is there an alternative option to make it a pub package at this time?
Activity
yasinarik commentedon May 20, 2020
Excuse me Justin @justinmc , maybe not related but does the InteractiveViewer renders on-demand? If this is not related here, let me move this comment to an appropriate place :)
I mean I have been building a Google Spreadsheet kinda widget that I call "AdvancedTable" for a long time.
It consists of dynamically added, removed columns (which are separate ListView.builder() actually). I use the .builder() method for rendering thousands of cells on-demand for avoiding performance issues.
The columns can be frozen as well as headers. So there is a frozen are and a scrollable are which allows vertical and horizontal scrolling. However, as you can guess, it is not smooth. I can go with scroll locking (when you start scrolling vertically, it won't start scrolling horizontally vice versa). However, scroll locking is not available.
I wonder if I can wrap the scrollable area of my table with your InteractiveView and have no performance issues. I'll give it a try but is there anything you can say to me?
justinmc commentedon May 20, 2020
@yasinarik I haven't built anything into InteractiveViewer to handle rendering on-demand, unfortunately. So I would guess that switching to InteractiveViewer wouldn't give you any performance benefit. Are you hoping for something like ListView.builder?
P.S. I was thinking about adding scroll locking to InteractiveViewer. It might be a good near-term feature to add.
justinmc commentedon Jun 3, 2020
I created a separate issue as a feature request for something like InteractiveViewer.builder: #58603
victor-lozhnikov commentedon Aug 9, 2020
Are there any analogues in Flutter at the moment? I need a container with these functions: movement, zoom, rotation. And I need the ability to set the minimum and maximum scale. I'm really looking forward to the rotation support in InteractiveViewer!
justinmc commentedon Aug 10, 2020
My work on rotation is in this branch: https://github.com/justinmc/flutter/tree/iv-rotation
It works, but it has some complex interactions with the boundary that I still need to make sure I get 100% correct.
doppio commentedon Aug 22, 2020
Is this likely to be included in the next release of Flutter? It's exactly what I need for my use case! :)
justinmc commentedon Aug 24, 2020
@doppio Unfortunately it's probably not likely for the next stable release (9/7 cutoff). Thanks for the comment though, this gives me some more motivation to get it done. I'll make sure this issue is up to date.
KopiasCsaba commentedon Dec 6, 2020
I've bumped into this too, i would like to have rotation feature too:-) Just for some motivation++:)
justinmc commentedon Feb 1, 2021
@hacker1024 You mentioned wanting a rotation gesture for MacOS and iPadOS in #64210 (comment). Do you have an opinion of what that would be? Maybe like option + scroll or something?
liu1013269528 commentedon Oct 26, 2021
I am making a painting tool and using the InteractiveViewer as the canvas container, currently has two finger drag, zoom function. I would be grateful if InteractiveViewer could support rotation.

justinmc commentedon Oct 29, 2021
@liu1013269528 I had this working in #73358, but I wasn't happy with the code so I closed it for now. I hope to have time to come back to it.
cshang412 commentedon Feb 7, 2022
i also need rotation feature +1 , come on !
JaffaKetchup commentedon Jul 17, 2022
Rotation would be appreciated here as well!
kristapus commentedon Jan 26, 2023
Any updates or near future plans to release this feature? Would be really nice to have it!
mobile-development-group-com commentedon May 9, 2023
@justinmc Any update or special reasons on why this is still not working after two years? Is there an alternative option to make it a pub package at this time?
justinmc commentedon May 9, 2023
I had a PR linked above but I didn't have time to get it through code review: #73358
pamafe1976 commentedon Nov 8, 2025
Is this feature still being considered?