使ListView从堆栈的背景可滚动

时间:2019-10-25 14:40:59

标签: flutter flutter-layout

我有一个Stack,在它的最底部有一些容器和水平的listView。(故意,这是设计的一部分)。现在,我尝试滚动浏览它,因为顶部容器使它无法访问,所以它不起作用。如何保持相同的小部件树,但使底部的listView可滚动?

return Stack(
    children: <Widget>[
      AnimatedBuilder(
                animation: ctrl,
        builder: (context, child){
          var pos = ctrl.position.pixels;
          return Container(
          height: pos<h?(pos/h * 250):250,
          child: ListView.builder(
            scrollDirection: Axis.horizontal,
            itemBuilder: (ctxt, index){
              return Container(
                height: pos<h?(pos/h * 250):250,
                width: 250,
                child: Image(), //Horizontal listview
              );
            },
          ),
          );
        },
        ),
      ListView(
        controller: ctrl,
        children: <Widget>[
          AnimatedBuilder(
            animation: ctrl,
            builder: (context, child){
              var pos = ctrl.position.pixels;
              return Container(
                height: pos<h?(pos/h * 250):250,
              );
            },
          ),
          //This is the container I'm talking about, it's just like padding(It's nothing in there)
        ],
      ),
    ],
  );

1 个答案:

答案 0 :(得分:0)

您可以将ListView放在Container后面的Stack后面,这样它将位于Container上方,您可以与之交互。

或者您可以将ContainerIgnorePointer包裹在一起,以便手势不会被Container截获,并且可以与ListView进行交互。