【问题标题】:Flutter : make two listviews scrollable as oneFlutter:使两个列表视图可滚动为一个
【发布时间】:2019-10-11 19:28:32
【问题描述】:

我正在尝试制作一个可滚动的屏幕(就像整个屏幕可滚动)。

这是我知道的:

Column(
          children: <Widget>[

                 Expanded(
                    child: ListView(
                        scrollDirection: Axis.horizontal, children: posts2b)),

            Expanded(child: ListView(children: posts2a)),
          ],
        );

一切正常,但我希望这些列表视图可以作为一个滚动视图。因此,如果您向下滚动,水平列表视图会“消失”。

这可能吗?

谢谢!

【问题讨论】:

  • 所以如果你在其中一个列表上滚动,另一个应该会自动滚动,这有点奇怪?
  • 我相信您正在寻找的内容已经在此 stackoverflow 帖子 stackoverflow.com/questions/54859779/… 中得到修复

标签: flutter dart


【解决方案1】:

这样的?

SingleChildScrollView(
  child: Column(
    mainAxisSize: MainAxisSize.min,
    children: <Widget>[
      SizedBox(
        height: 200,
        child: ListView(
          scrollDirection: Axis.horizontal,
          children: posts2b,
        ),
      ),
      Flexible(
        child: ListView(
          physics: NeverScrollableScrollPhysics(),
          shrinkWrap: true,
          children: posts2a,
        ),
      ),
    ],
  ),
)

SingleChildScrollView包裹Column,设置水平列表的高度并通过添加physics: NeverScrollableScrollPhysics()禁用垂直列表的滚动...

【讨论】:

  • 谢谢,我试过了,但是出现错误:A RenderFlex 底部溢出了 743 像素。整个屏幕不滚动....
  • 在我的情况下物理:NeverScrollableScrollPhysics(),工作。
  • NeverScrollableScrollPhysics 工作得非常好。
【解决方案2】:

使用 SizedBox() 并给出选项 shrinkWrap: true。

大小框( 孩子:列表视图( 物理:NeverScrollableScrollPhysics(), 收缩包装:是的, ... ), 大小盒( 孩子:列表视图( 物理:NeverScrollableScrollPhysics(), 收缩包装:是的, ... ),

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-21
    • 2021-02-17
    • 1970-01-01
    • 2020-02-18
    • 1970-01-01
    • 1970-01-01
    • 2020-05-17
    相关资源
    最近更新 更多