3

error在使用时得到这个AppBar

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 .'
                    ),
                  ),
                ),
              ),
            ),

如您所见, theScrollBarSingleChildScrollViewuse 相同ScrollController。我不知道为什么会发生此错误。知道我在这里缺少什么吗?

4

2 回答 2

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 .'
                    ),
                  ),
                ),
              ),
            ),
于 2022-01-19T10:32:50.467 回答
0

在调度程序回调期间引发了以下断言: Scrollbar 的 ScrollController 没有附加 ScrollPosition

没有 ScrollPosition 就无法绘制 Scrollbar。

滚动条尝试使用提供的 ScrollController。此 ScrollController 应与应用 Scrollbar 的 ScrollView 相关联。在提供您自己的 ScrollController 时,请确保 Scrollbar 和 Scrollable 小部件使用相同的。

这是颤振的错误,https://github.com/flutter/flutter/issues/82573

它固定在颤振主分支上:

flutter channel master
flutter upgrade
于 2022-01-29T15:43:10.870 回答