#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 отменяется. Затем нижняя панель навигации не работает до перезапуска приложения.