【问题标题】:How to scroll page in flutter with multiple listviewbuilders如何使用多个列表视图构建器滚动页面
【发布时间】:2019-03-15 10:30:22
【问题描述】:

我正在尝试创建一个包含多个部分的页面,并且每个部分都是使用 ListView.builder() 生成的。 这里我面临的页面问题是,除非触摸没有集中在使用 ListView 生成的小部件上,否则页面不会滚动。

  Widget _widget1(BuildContext context){
    return ListView.builder(
      ....
       .....
    );
  }
  Widget _widget2(BuildContext context){
    return ListView.builder(
      ....
       .....
    );
  }
  Widget _widget3(BuildContext context){
    return ListView.builder(
      ....
       .....
    );
  }

  body: Container(
    child: ListView(
      scrollDirection: Axis.vertical,
      physics: PageScrollPhysics(),
      shrinkWrap: true,
      children: <Widget>[
        Container(
          height: 140.0,
          child: _offersBanner(context)
        ),
        _widget1(context),
        _widget2(context),
        _widget3(context)
      ],
    )
  )

【问题讨论】:

    标签: dart flutter


    【解决方案1】:

    试试这个, 请在 ListView.builder 中添加以下代码

     shrinkWrap: true,
     physics: ClampingScrollPhysics(),
    

    【讨论】:

      【解决方案2】:

      您想要四个滚动列表还是只想要一个组合列表

      • 如果你想要前者,你所做的应该按照你想要的方式工作。
      • 如果您想要后者(组合列表),那么您应该在 _widget1、_widget2 和 _widget3 类中使用 column 而不是 listview。

      我猜你需要后者。

        Widget _widget1(BuildContext context){
          return Column(
            ....
             .....
          );
        }
        Widget _widget2(BuildContext context){
          return Column(
            ....
             .....
          );
        }
        Widget _widget3(BuildContext context){
          return Column(
            ....
             .....
          );
        }
        body: Container(
          child: ListView(
            scrollDirection: Axis.vertical,
            physics: PageScrollPhysics(),
            shrinkWrap: true,
            children: <Widget>[
              Container(
                height: 140.0,
                child: _offersBanner(context)
              ),
              _widget1(context),
              _widget2(context),
              _widget3(context)
            ],
          )
        )
      

      【讨论】:

      • 我无法通过上述解决方案解决我的问题。我有四个带有 listview.builder() 的小部件。页面内容超出屏幕高度。我无法滚动页面
      • 您想要四个滚动列表还是一个组合列表?
      • 我想要一个可以滚动的组合列表
      • 使用 SingleChildScrollView,添加一个 Column 作为子级,列表作为 Column 小部件的子级
      • @KURRUHEM 然后你可以使用我的第二个解决方案。我已经用一些代码更新了我的答案。
      猜你喜欢
      • 2013-08-14
      • 1970-01-01
      • 2019-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-31
      • 2023-03-06
      • 1970-01-01
      相关资源
      最近更新 更多