Important: Please read the Qt Code of Conduct -

ListView really slow scrolling

  • I'm moving around a QML ListView by setting the currentIndex, and it works - but scrolls excruciatingly slow. How can I speed it up?

  • That's a hard question to answer without details.

    • The model could be inefficient. If so, look at improving the efficiency of functions that are called repeatedly, such as QAbstractItemModel::data().
    • The delegate could be complex due to child items and bindings. Either simplify, or move some of it into a delayed construction method such as Loader.
    • Delegate instances might be destroyed, only to be recreated when the view scrolls back in the delegate's direction. Set ListView.cacheBuffer to tell the engine to preserve additional delegate instances outside of the visible area.
    • The system might have insufficient GPU, CPU, memory, or other resources. Is destroying currently unused objects, precomputing results, or delaying evaluations an option?
    • The write pattern for currentIndex might not be supportable. Going from 0 to INT_MAX? Disabling transitions and adopting a trivial delegate might be necessary.

  • I appreciate the in-depth answer!

    But I think it's more of an animation scrolling speed that is an issue. Is there any way I can speed it up? See gif:

  • Hello, if the listView is to big you may run into some issues, try using cacheBuffer to adjust the number of preloaded items not visible in the window so it fixes slow dynamic loading . Also use maximumFlickVelocity if your problem is that you want to speed up the scrolling

Log in to reply