【发布时间】: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