Нижняя панель навигации перестала работать ScrollController, подключенный к нескольким видам прокрутки pagecontroller. Ошибка jumpTo

#flutter #controller #pageviews

#flutter #контроллер #просмотры страниц

Вопрос:

‘пакет: flutter / src / widgets /scroll_controller.dart’: Ошибка утверждения: строка 113 поз 12: ‘_positions.длина == 1’: ScrollController, подключенный к нескольким видам прокрутки.

После этой ошибки нижняя панель навигации перестанет изменять текущую страницу просмотра страницы.

 PageController pageController;

class MainController extends StatefulWidget {
  @override
  _MainControllerState createState() => _MainControllerState();
}

class _MainControllerState extends State<MainController>
    with TickerProviderStateMixin {


@override
  void initState() {
    // TODO: implement initState
    super.initState();
    pageController = PageController(initialPage: 0, keepPage: true);
  }

  @override
  void dispose() {
    // TODO: implement dispose
    super.dispose();
    pageController.dispose();
  }

 
 
PagesList() {
    return BlocBuilder<BottomnavbarcubitCubit, BottomnavbarcubitState>(
      builder: (context, state) {
        return Scaffold(
          body: PageView(
            allowImplicitScrolling: true,
            controller: pageController,
            onPageChanged: (int index) => state.currentIndex = index,
            children: [
              NotificationsScreen(),
              NotificationsScreen(),
              NotificationsScreen(),
              NotificationsScreen(),
             
            ],
          ),
          bottomNavigationBar: NormalNavBar(),
        );
      },
    );
  }
}

 

Функция onTap Bottomnavbar, которая создает ошибку

  try {
              if (pageController.hasClients)
                await pageController.animateToPage(state.currentIndex,
                    duration: Duration(milliseconds: 500),
                    curve: Curves.elasticOut);
            } catch (err) {
              print(err);
            }

 
 E/flutter (30081): #18     GestureBinding._handlePointerEvent
package:flutter/…/gestures/binding.dart:295
E/flutter (30081): #19     GestureBinding._flushPointerEventQueue
package:flutter/…/gestures/binding.dart:240
E/flutter (30081): #20     GestureBinding._handlePointerDataPacket
package:flutter/…/gestures/binding.dart:213
E/flutter (30081): #21     _rootRunUnary (dart:async/zone.dart:1206:13)
E/flutter (30081): #22     _CustomZone.runUnary (dart:async/zone.dart:1100:19)
E/flutter (30081): #23     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
E/flutter (30081): #24     _invoke1 (dart:ui/hooks.dart:265:10)
E/flutter (30081): #25     _dispatchPointerDataPacket (dart:ui/hooks.dart:174:5)
 

Ответ №1:

Это происходит, когда выборка данных из firestore отменяется. Затем нижняя панель навигации не работает до перезапуска приложения.