小编joh*_*ris的帖子

如何获取 NestedScrollView 的滚动方向

我正在尝试获取 NestedScrollView 的滚动方向(向上/向下),以便我的小部件之一可以做出相应的反应。

我已经使用了NotificationListener小部件并尝试打印它返回的axisDirection,但当我向两个方向滚动时它只返回“向下”。显然,这就是它应该的行为方式,但是,Flutter 中似乎没有任何方法可以知道如何获取滚动方向。有没有办法获取滚动方向,无论是 AxisDirection 还是 bool ?

@override
  Widget build(BuildContext context) {

    return Container(
      color: Colors.black,
      child: SafeArea(
        child: Scaffold(
          backgroundColor: Color.fromARGB(255, 22, 22, 22),
          body: NotificationListener<ScrollStartNotification>(
            onNotification: (ScrollNotification scrollInfo) {


              print("scrollInfo up ===== ${scrollInfo.metrics.axisDirection}");


            },
            child: NotificationListener<ScrollStartNotification>(
              onNotification: (ScrollNotification scrollInfo) {
                if (scrollInfo.metrics.axisDirection == AxisDirection.down) {
                  print(
                      "scrollViewColtroller down == ${scrollViewColtroller.position.axisDirection}");
                }
              },
              child: NestedScrollView(
                controller: scrollViewColtroller,
                headerSliverBuilder:
                    (BuildContext context, bool boxIsScrolled) {
                  return <Widget>[
                    SliverAppBar(
                      floating: true,
                      snap: true,
                      pinned: false,
                      elevation: 10,
                    )
                  ];
                }, …
Run Code Online (Sandbox Code Playgroud)

dart flutter

8
推荐指数
2
解决办法
7100
查看次数

标签 统计

dart ×1

flutter ×1