Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Сбрасывается scroll position при переходе назад #230

Closed
svyatoslavpavlov opened this issue Sep 24, 2023 · 10 comments

Comments

@svyatoslavpavlov
Copy link

Собственно, при работе с длинными списками при детальном просмотре и переходе назад приходится скроллить сначала.

@nshvyryaev
Copy link
Contributor

Добрый день!
Сейчас есть такая проблема. Спланируем и возьмем в работу задачу.

@Yarkin13
Copy link

Собственно, при работе с длинными списками при детальном просмотре и переходе назад приходится скроллить сначала.

Добрый день, прошу приложить видео с примером дефекта.

@svyatoslavpavlov
Copy link
Author

Собственно, при работе с длинными списками при детальном просмотре и переходе назад приходится скроллить сначала.

Добрый день, прошу приложить видео с примером дефекта.

Screen.Recording.2023-09-30.at.10.06.40.mov

@svyatoslavpavlov
Copy link
Author

Добрый день!
Сейчас есть такая проблема. Спланируем и возьмем в работу задачу.

Можете поделиться примерными сроками?

@Yarkin13
Copy link

Yarkin13 commented Oct 2, 2023

Собственно, при работе с длинными списками при детальном просмотре и переходе назад приходится скроллить сначала.

Добрый день, прошу приложить видео с примером дефекта.

Screen.Recording.2023-09-30.at.10.06.40.mov

Пришлите пожалуйста структуру навигации.

@svyatoslavpavlov
Copy link
Author

svyatoslavpavlov commented Oct 2, 2023

export const routes = RoutesConfig.create([
  createView(DEFAULT_VIEW, [ 
    createPanel(DEFAULT_VIEW_PANELS.EVENT, "/event/:event", [], ["event"]),
    createPanel(DEFAULT_VIEW_PANELS.GROUP_SCHEDULE, `/${DEFAULT_VIEW_PANELS.GROUP_SCHEDULE}`, [
      createTab(GROUP_SCHEDULE_TABS.UPCOMING, `/${DEFAULT_VIEW_PANELS.GROUP_SCHEDULE}/`),
      createTab(GROUP_SCHEDULE_TABS.PAST, `/${DEFAULT_VIEW_PANELS.GROUP_SCHEDULE}/${GROUP_SCHEDULE_TABS.PAST}`),
      createTab(GROUP_SCHEDULE_TABS.TAG, `/${DEFAULT_VIEW_PANELS.GROUP_SCHEDULE}/${GROUP_SCHEDULE_TABS.TAG}/:tag`, [], ["tag"]),
    ]),
...

На видео переход с DEFAULT_VIEW_PANELS.EVENT обратно к DEFAULT_VIEW_PANELS.GROUP_SCHEDULE

@svyatoslavpavlov
Copy link
Author

Кажется, я понял, в чем проблема:
Значение текущего таба сбрасывается при переходе на другой экран

и если делать по образцу через if-else, то при переходе на details экран список будет скрыт, а при переходе назад снова появится

@nshvyryaev
Copy link
Contributor

Звучит логично, посмотрим на этот случай. Если действительно так, нужно будет чинить совместно с VKUI

@pasha-nikitin-2003
Copy link
Contributor

Собственно, при работе с длинными списками при детальном просмотре и переходе назад приходится скроллить сначала.

Добрый день! Проблема может заключаться в неправильном расположении панелей внутри View. VKUI восстановит скролл, если компонент панели, на которую вы возвращаетесь, будет в верстке находиться выше компонента панели, с которой вы возвращаетесь. То есть панель GROUP_SCHEDULE, должна идти раньше панели EVENT в верстке внутри View.

Также могут быть и другие причины, почему отсутствует восстановление скролла, например:

  • изменение внутренних стилей компонентов vkui.
  • верстка внутри самой панели, которая мешает браузеру выполнить window.scrollTo(...).

Если вышеперечисленные варианты не помогут, то мы можем посмотреть код проекта, чтобы дать более конкретный ответ.

@svyatoslavpavlov
Copy link
Author

Поменял немного структуру, проблема действительно отпала

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants