【问题标题】:Flutter The Scrollbar's ScrollController has no ScrollPosition attachedFlutter Scrollbar 的 ScrollController 没有附加 ScrollPosition
【发布时间】:2021-12-19 12:53:46
【问题描述】:

我在使用AppBar 时得到这个error

Scrollbar 的 ScrollController 没有附加 ScrollPosition。

这是我的CustomScrollBar

class CustomScrollBar extends StatelessWidget {
  final Widget child;
  final ScrollController scrollController;

  const CustomScrollBar({
    required this.scrollController,
    required this.child,
  });

  @override
  Widget build(BuildContext context) {
    return RawScrollbar(
      thumbColor: AppColors.gray,
      radius: Radius.circular(8),
      thickness: 4,
      isAlwaysShown: true,
      controller: scrollController,
      child: child,
    );
  }
}

我应该始终可见。这就是我使用它的方式:

child: CustomScrollBar(
              scrollController: _scrollControllerForScrollBar,
              child: SingleChildScrollView(
                controller: _scrollControllerForScrollBar,
                child: Padding(
                  padding: EdgeInsets.all(7.0.scaled),
                  child: Container(
                    width: double.infinity,
                    child: Text(
                      'any text bla bla bla \n\n\n this is a lot of \n text \n .'
                    ),
                  ),
                ),
              ),
            ),

您可以看到ScrollBarSingleChildScrollView 使用相同的ScrollController。我不知道为什么会发生此错误。知道我在这里缺少什么吗?

【问题讨论】:

  • 你解决了吗?
  • @Balaji 不,不幸的是没有......
  • 我也是同样的问题,等我找到解决办法再告诉你]
  • 在您的CustomScrollBar中,您需要将scrollController分配给RawScrollBar。
  • @SamiIssa 啊,我在问题中错过了这一点,在我的代码中附上了它

标签: flutter dart scrollview scrollbar singlechildscrollview


【解决方案1】:

完全删除 scrollController 应该可以解决问题。这就是我修复代码的方式,因此您的代码应该看起来像这样

class CustomScrollBar extends StatelessWidget {


 final Widget child;

  const CustomScrollBar({
    required this.child,
  });

  @override
  Widget build(BuildContext context) {
    return RawScrollbar(
      thumbColor: AppColors.gray,
      radius: Radius.circular(8),
      thickness: 4,
      isAlwaysShown: true,
      child: child,
    );
  }
}

第二部分应该是这样的

child: CustomScrollBar(
              child: SingleChildScrollView(
                child: Padding(
                  padding: EdgeInsets.all(7.0.scaled),
                  child: Container(
                    width: double.infinity,
                    child: Text(
                      'any text bla bla bla \n\n\n this is a lot of \n text \n .'
                    ),
                  ),
                ),
              ),
            ),

【讨论】:

    猜你喜欢
    • 2021-12-21
    • 2022-08-21
    • 1970-01-01
    • 2019-02-28
    • 1970-01-01
    • 2019-05-18
    • 2023-04-06
    • 2021-11-14
    • 2021-02-06
    相关资源
    最近更新 更多