Ivan Samborskii
11/11/2025, 11:11 PMLazyColumn similar to what we see in the Gmail app:
1. Pull-to-refresh (PTR) works when the user drags the list with a finger (✅ works by default).
2. PTR indicator doesn’t show when the user scrolls using the mouse wheel (✅ achieved using pointerInput + awaitPointerEventScope to detect mouse input and disable PTR indicator).
3. Click-and-drag with a mouse should both scroll the list and trigger PTR — just like dragging with a finger (❌ currently stuck here).
I tried adding a draggable modifier so users can click-and-drag to scroll, but:
• There’s no momentum effect - if I scroll fast, the list stops instantly instead of continuing to glide.
• It doesn’t trigger PTR either.
Has anyone tackled something similar or knows how to achieve point (3)?
Any hints or directions would be appreciated 🙏Ivan Samborskii
11/11/2025, 11:12 PMAlex Vanyo
11/19/2025, 5:23 PMIvan Samborskii
11/20/2025, 11:20 AMLazyColumn. From what I understand, on desktop it’s more common to have a dedicated refresh button in a toolbar instead of relying on pull-to-refresh gestures. The challenge is that updating this pattern consistently across the entire app would be quite costly, and it’s also unclear what the UX should be when a mouse is connected to a small-screen device where there’s no practical space for a refresh button.
It’s possible my assumption about desktop UX isn’t entirely correct, and there may be a better pattern we should consider.