当呈现多个小部件实例并且调用 getValue 方法时,flutter 会抛出附加到多个滚动 View 的错误 ScrollController。我假设这是因为它们都使用相同的 Controller ,但我不知道解决这个问题的方法,而无需为每次使用创建单独的小部件。有没有更好的方法来解决这个问题?

class NumScroller extends StatelessWidget{
  final int max,min;
  final double height,width;
  final TextAlign alignment;

  static ScrollController controller;

  NumScroller({this.height,this.width,this.alignment,this.min,this.max, initialOffset}){
    controller = new ScrollController(initialScrollOffset: initialOffset);
  }

  getValue() => (controller.offset~/height) + min;

  @override
  Widget build(BuildContext context) {
    return new Container(
        width: width,
        height: height,
        child: ListView.builder(itemBuilder: (context, index) {
          return new Container(height: height, child:Text((max - index).toString(),textAlign: alignment,));
          },
          itemCount: max - min+1,
          controller: controller,
          physics: PageScrollPhysics(),
          itemExtent: height,
        )
    );
  }

}

最佳答案

正如您所说的 multiple instances are rendered ,您会收到此 错误 。当您的 ScrollController 是多个(一个 View 一个)时,您不会遇到任何问题。但是您只有一个 ScrollController(因为您有 静态 )。

去除静电,它应该可以工作。

请让我知道它是否不起作用。

关于dart - flutter ScrollController 附加到多个滚动 View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52484710/

10-09 04:20