1 Вопрос: Flutter - странное поведение для bottomNavigationBar и PageView

вопрос создан в Wed, May 8, 2019 12:00 AM

У меня есть родительский виджет и 3 дочерних виджета, которыми управляют bottomNavigationBar и PageView вместе.

Данные, введенные в дочерний виджет страницы 1, будут отправлены на страницу 2.

У меня есть метод onTapped в виджете «Родитель», я обновлю имя на «Джон», введенное на Page1, а затем отобразим на Page2.

Если предположить, что я ввел имя «Джейн» в Page1 и когда щелкнул «Страница2» на bottomNavigationBar, метод onTapped немедленно обновит имя до «Страница2» (отображается Джон). Проблема в том, что, если я проведу пальцем со страницы 1 к странице 2. Имя на странице 2 по-прежнему "Джейн". Если я проведу пальцем к странице 3, а затем снова к странице 2 или странице 1 к странице 2, то имя будет обновлено до «Джон».

«onTap: bottomTavigationBar» и «onPageChanged:» PageView оба используют один и тот же метод onTapped .

 pageview

Я ожидал, что оба пролистывания страницы или щелчка по панели навигации приведут к одинаковому результату.

    
0
  1. Похоже, что PageView onPageChanged вызывается только после изменения области просмотра, как указано здесь: docs.flutter.io/flutter/widgets/PageView/onPageChanged.html Это работает иначе, чем bottomNavigationBar: Вызывается при нажатии одного из элементов. Есть ли способ запустить метод с использованием PageView до изменения области просмотра?
    2019-05-08 18: 42: 01Z
1 ответ                              1                         

Как упомянуто в комментарии, PageView onPageChanged вызывается только после изменений области просмотра, как упомянуто здесь: docs.flutter.io/flutter/widgets/PageView/onPageChanged.html. Работает иначе, чем bottomNavigationBar: Вызывается, когда один из элементов касается. р>

Чтобы вызвать метод до 2-й страницы: добавьте Listener на контроллер страницы. Это решило мою проблему.

    
0
2019-05-08 19: 03: 09Z
источник размещен Вот