Skip to content
  • 0 Votes
    5 Posts
    2k Views
    B

    @jpnurmi said in ListView and PageIndicator - PageIndicator is not updated:

    The bindings are fine. The problem is that the ListView has only snapMode set, but highlightRangeMode seems to be missing. Therefore the ListView is not changing its currentIndex while flicking.

    snapMode does not affect the currentIndex. To update the currentIndex as the list is moved, set highlightRangeMode to ListView.StrictlyEnforceRange.

    https://doc-snapshots.qt.io/qt5-5.9/qml-qtquick-listview.html#snapMode-prop

    Thank you @jpnurmi.
    The following line solved the problem:

    highlightRangeMode: ListView.StrictlyEnforceRange

    Somehow I missed another thread: https://forum.qt.io/topic/81429/listview-does-not-change-currentindex-when-scrolling/6

  • 1 Votes
    5 Posts
    7k Views
    T

    I know it's been a few years, but this might still be helpful to someone :)

    For me, this approach works:

    delegate: MyDelegate { MouseArea { id: _mouseArea anchors.fill: parent } Binding { when: _mouseArea.pressed target: _listView property: "interactive" value: false } }

    With this setup, you should be able to scroll the list view using the scroll wheel. When you perform a press-and-drag gesture, it will disable the scrolling or flicking behavior. Once you release the mouse button, the binding will be restored, making the list view interactive again, so you can scroll with the mouse wheel once more.

    Even when you have multiple elements (i.e., instantiated delegates), dragging across them won't reset the interactive property until you release the mouse button.

  • 0 Votes
    1 Posts
    405 Views
    No one has replied