相关疑难解决方法(0)

如果 pushReplaceNamed,Flutter PageView 会崩溃

我有一个NavBar我通过 a 控制的Provider

class BottomNavBarProvider extends ChangeNotifier {
  final PageController navigationController = PageController(initialPage: 0);
  int selectedTabIndex = 0;

  BottomNavBarProvider() {}

  void selectTab(int index) {
    navigationController.jumpToPage(index);
    selectedTabIndex = navigationController.page?.round() ?? 0;
    notifyListeners();
  }
}
Run Code Online (Sandbox Code Playgroud)

问题: 我认为问题是我使用 aProvider来存储我的,PageContrller所以如果我推送到另一个页面,在那里BottomBar使用 ,它总是附加到来自提供者的同一个页面。所以我想我需要一种方法来正确disposePageController。但是我该怎么做呢?

我在我的内部使用它ApplicationContainer

class ApplicationContainer extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    initSizeService(context);

    return Scaffold(
      body: PageView(
        controller:
            Provider.of<BottomNavBarProvider>(context).navigationController,
        children: <Widget>[
          HomePage(),
          EntryPage(),
          VitalsHistoryPage(
            Provider.of<VitalsHistoryProvider>(context),
          ),
          SettingsPage(),
        ], …
Run Code Online (Sandbox Code Playgroud)

routes push dart flutter flutter-pageview

5
推荐指数
0
解决办法
180
查看次数

Flutter ScrollController 在 NestedScrollView 中的位置

我有一个NestedScrollView容纳有SliverAppBarTabBarView和标签由每一个无限加载列表。现在我只有一个ScrollController附加到NestedScrollView,并且列表小部件读取此控制器的滚动位置。

无限加载逻辑用于controller.position.extentAfter决定何时从 API 获取数据。但是使用多个选项卡,我收到错误

ScrollController 附加到多个滚动视图。

我尝试阅读,controller.positions但无法理解可用的 2 行文档。我的问题是,是否可以在 a 中访问每页的滚动位置,TabBarView还是应该ScrollController为每个页面单独使用而忘记正确滚动条子?

flutter

2
推荐指数
1
解决办法
2561
查看次数

Flutter异常:ScrollController附加到多个滚动视图

我的Flutter应用程序从ScrollController要控制的页面离开时抛出了异常(将ScrollController附加到多个滚动视图)NestedScrollView,但我不确定自己在做什么错。

我用下面的简单示例重新创建了异常。我可以从导航FirstPageSecondPage(也可以向后导航)就好了,但是当我从导航SecondPageThirdPage异常时,会引发异常。该SecondPage页面包含我CollapsingAppBarPage认为有问题的自定义窗口小部件。CollapsingAppBarPage在此示例中被简化,但是在我的真实应用中,它会根据滚动位置更改组件的颜色/大小。在此示例中,当_scrollController.offset导航开始到时会在发生时发生异常ThirdPage。另外,我知道FirstPage和ThirdPage可能是Stateless而不是StatefulWidgets,但我想使其尽可能与我的应用程序一样。这是我充分工作的例子。

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      home: FirstPage(),
    );
  }
}

class FirstPage extends StatefulWidget {
  @override
  _FirstPageState createState() => _FirstPageState();
}

class _FirstPageState extends State<FirstPage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("First Page"),
      ),
      body: …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-sliver

1
推荐指数
4
解决办法
3022
查看次数

标签 统计

flutter ×3

dart ×1

flutter-pageview ×1

flutter-sliver ×1

push ×1

routes ×1