我有一个带有 CollectionView 控件的列表页面,当单击项目时,它会打开详细信息页面,当在详细信息页面上按下后退按钮时,我会丢失列表页面上的 scoll 位置! 通过 Shell 导航,每次我们返回之前的页面时,都会重新呈现它!所以滚动位置丢失了!数据需要再次绑定,并且很难保存最后的滚动位置并恢复它,这不是期望的行为!
我尝试了与NavigationPage相同的场景,使用Navigation.Push(DetailsPage),对于后退Navigation.Pop(),这会保持列表页面状态没有变化,滚动位置不会重置!一切都按预期进行!
是否可以通过 Shell 导航实现同样的效果?
我通过注册列表页面及其 ViewModel 作为单音,通过 shell 导航实现了所需的行为