【问题标题】:Make a ListView scroll horizontal in a PageView使 ListView 在 PageView 中水平滚动
【发布时间】:2021-08-16 07:35:16
【问题描述】:

我正在尝试创建一个包含在 PageView 中的图像的 ListView,以便我可以向左或向右滑动以移动到其他图像。

但我目前遇到了一个错误,它只显示为一列并且垂直滑动而不是我想要的水平滑动。

任何有解决方案或想法的人,请帮助我。

这是我的代码:

final PageController _controller = PageController(
initialPage: initialImageIndex, keepPage: true, viewportFraction: 1);
return SafeArea(
child: Scaffold(

  body: PageView(
      controller: _controller,
      scrollDirection: Axis.horizontal,
      onPageChanged: (index) {
        print("changed to $index");
      },
      children: [
        Row(
          children: [
            Container(
              width: size.width,
              child: ListView.builder(
                controller: ScrollController(
                ),
                scrollDirection: Axis.horizontal,
                shrinkWrap: true,
                // physics: NeverScrollableScrollPhysics(),
                itemCount: imagesInCategory.length,
                itemBuilder: (context, index) {
                  return BuildImageDetail(
                      size: size, imageData: imagesInCategory[index]);
                },
              ),
            ),
          ],
        ),
    ])),

【问题讨论】:

  • 你能显示你的错误和代码吗?
  • 谢谢@ChiragBargoojar,我刚刚编辑了它,错误是它不像我想的那样滚动整个屏幕
  • 您想在Pageview 中显示水平的ListView 对吗?
  • 没错,但是当我滚动它时,它不会像 PageView 那样滚动,而是滚动整个设备宽度,它会滚动一点
  • Ok 这个问题是如果你试图让你的PageView() 与你的LisView() 相同的方向滚动它会与你的Axis.horizontal 发生冲突,因为两者都是水平滚动的所以你需要做一些自定义可滚动。这是完整的讨论。 github.com/flutter/flutter/issues/50946

标签: flutter dart flutter-listview flutter-pageview


【解决方案1】:

我刚刚获得了一个函数来呈现 Listview 当前所做的小部件。 然后在 PageView 的孩子中,我只是调用这个函数。

希望这对某人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-04
    • 1970-01-01
    相关资源
    最近更新 更多