如何允许垂直滚动并禁用Flutter水平滑动?

问题描述 投票:0回答:1

我有以下页面:

enter image description here

有一个底栏和三页。我想启用垂直滚动,但禁用滑动。

我在SingleChildScrollView中使用了physics: NeverScrollableScrollPhysics()的建议,但随后禁用了垂直滚动,但我仍然可以滑动。

我的代码的一部分:

...
    return SingleChildScrollView(
      scrollDirection: Axis.vertical,
      controller: ScrollController(),
      physics: NeverScrollableScrollPhysics(),
      child: Container(
        child: Column(
          children: <Widget>[
            Text('AAA'),
            Text('AAA'),
            Text('AAA'),
            Text('AAA'),
...

我用PageViews构建'tabs':

  Widget buildPageView() {
    return PageView(
      controller: pageController,
      onPageChanged: (index) {
        pageChanged(index);
      },
      children: <Widget>[
        Page1Screen(),
        Page2Screen(),
        Page3Screen(),
      ],
    );
  }

任何建议都会非常受欢迎。

flutter flutter-layout
1个回答
4
投票

只需将NeverScrollableScrollPhysics()添加到 - PageView

PageView(
        physics: NeverScrollableScrollPhysics(), // add this
        controller: pageController,
        onPageChanged: (index) {
           pageChanged(index);
        },
        children: <Widget>[
          Page1Screen(),
          Page2Screen(),
          Page3Screen(),
        ],
      ),
© www.soinside.com 2019 - 2024. All rights reserved.