微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

底部导航栏停止工作 ScrollController 附加到多个滚动视图 pagecontroller.jumpTo 错误

如何解决底部导航栏停止工作 ScrollController 附加到多个滚动视图 pagecontroller.jumpTo 错误

'package:Flutter/src/widgets/scroll_controller.dart':断言失败:第 113 行 pos 12:'_positions.length == 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(),],),bottomNavigationBar: normalNavBar(),);
      },);
  }
}

Bottomnavbar 的 onTap 函数会产生错误

 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)

解决方法

当从 firestore 获取数据被取消时发生。然后底部导航栏在重新启动应用程序之前不起作用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。