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

时间:2019-03-14 10:05:54

标签: flutter flutter-layout

我有以下页面:

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构建“标签”:

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

任何建议都将受到欢迎。

1 个答案:

答案 0 :(得分:3)

只需将NeverScrollableScrollPhysics()添加到-PageView

PageView(
        physics: NeverScrollableScrollPhysics(), // add this
        controller: pageController,
        onPageChanged: (index) {
           pageChanged(index);
        },
        children: <Widget>[
          Page1Screen(),
          Page2Screen(),
          Page3Screen(),
        ],
      ),