Description
Describe the bug
If the RefreshContainer is configured to refresh with PullDirection.TopToBottom
and contains a list,
This is counterintuitive to most users.
Also: You have to klick into the list first (i.e. select an item of the list in the ControlGallery/RefreshContainer sample).
Then, with the second click, you can finally start the "pull2refresh" action:
To Reproduce
Run the ControlGallery app on iOS/Android and go to the RefreshContainer sample.
Try to refresh.
It took me very long (including looking up the code on github) to finally figure out that the first list item has to be dragged.
Expected behavior
On Android/iOS the behavior is typically as such:
Instead of having to drag down the first item of a list,
you can drag down on any part of the RefreshContainer.
If the list is not scrolled to the top, the this gesture is interpreted as a scroll gesture => the list scrolls up
If we are scrolled to the top of the list alreaedy (when using PullDirection.TopToBottom
), the "refresh" logic kicks in.
This can be easily implemented by allowing to override the "canpull" in PullGestureRecognizer
And then overriding this in the ScrollViewerIRefreshInfoProviderAdapter:
Also, a list item should only be selected on "pointerUP", not on "pointerPRESSED". Because then, you do not have to
- first select a list element
- then drag it to start the "refresh" logic.
Avalonia version
11.1
OS
No response
Additional context
No response