Scroll position is lost when navigating back to parent page from child page (after using the See all button)

Hi, just wondering if anyone has a solution for this, thanks.

Summary
The scroll position of the parent page is lost when navigating back to the parent page after visiting a child page using the See All button.

Issue
I have a page showing a Grid component which has the orientation set to horizontal and the ‘Show see all’ option ticked. When you tap the ‘See all’ button and then tap to go back, the scroll position of the parent page is lost, the page’s scroll position now being at the top.

Replicate

  1. Create a page with content taller than the screen
  2. Add a Grid component at the bottom
  3. Set Grid data source to a populated table
  4. Set orientation to horizontal on the Grid component
  5. Enable ‘Show see all’ on the Grid component
  6. Note the scroll position of this page
  7. Tap ‘See all’ button to visit child page
  8. Tap Back button
  9. Compare scroll position noted earlier

Desired behaviour
Ideally the scroll position of the parent page should be retained.

Images
Example ‘See all’ button
temp

1 Like

Hi :wave:

Is this the same as this?

https://community.glideapps.com/t/go-back-jumps-to-the-top-of-the-last-screen

If so it’s known about and in a queue to be worked on

1 Like

Thanks for that. It looks like it may be the same issue, yep. Definitely a pretty major usability issue.

For anyone frustrated with this issue a workaround is to set the Collection > Actions > Item click > Navigation > Target to either Overlay or Slide In. This then retains the parent page’s scroll position, but it generally only a satisfactory UX if the target child page is a leaf rather than a branch, to use a tree metaphor.

Also, when using the ‘See all’ button to navigate to the child page, there is no way to specify the target method, so the workaround won’t work.

1 Like

One workaround is to make your own “See all” button in a rich text component and attach an action to it with a side in/ overlay

One workaround is to make your own “See all” button in a rich text component and attach an action to it with a side in/ overlay

I like the idea. I might be wrong but the rich text “See all” button you suggest would need a navigation target, which is specific to the Collection and any associated filters and sorting options etc, and wouldn’t necessarily be available to the rich text button?

You should be able to get to any part of your app from any part of your app… just a matter of thinking it through. Could you show me your specific example if the below does not work?

I would set the action to something like show new screen → side in and then put your entire collection on the new screen. If you need more control then that then you could set column values to some user specific columns as part of a custom action and leverage those USC’s in relations/ filter

<a href="#" style="color: #0b89ed; float: right; padding-right: 24px; font-weight: 600;">See All‏‏‎ ‎‏‏‎ ‎‏‏‎></a>

Edit: You could also use a button component which is nearly identical when you set it to… minimal, width auto, accent on, alignment right

Button component
Rich Text
Glide

1 Like

Thanks Eric, tested your workaround and it works as you described :+1:. My main quibble is that any index page (such as the one navigated to by the ‘See all’ button) should really be part of the ‘Main’ UI flow rather than an overlay or slide-in pane, so any workaround that uses overlays or slide-in panes is going to be a sticking plaster.

Hopefully the Glide devs assigned this task with this will bash out a fix at some point, though I appreciate that it’s a tricky issue as page navigation is such a fundamental feature of the platform and changing it will have wide ramifications.

2 Likes

Glad you got something working :wink:

I think Navigation is tricky because what is viewed by some as good navigation is bad for others… but agreed it could be improved.

1+ this request
We have tables with up to a thousand items so finding your place again is quite time consuming.

Not sure if it is more practical specifically when using a table? I.e return to previous screen with the last clicked row in the viewport.