我正在使用滑动屏幕,您可以左右滑动,所以如果单个用户有 5 张图片让我在我点击后一张一张地显示。我正在将 pageView.Builder 与 streamBuilder 一起使用,但是如果 streamBuilder 获取图片列表并让我移动到 pageView 中的下一个图像,我会不断收到
处理手势时抛出以下断言: ScrollController 附加到多个滚动视图。 'package:flutter/src/widgets/scroll_controller.dart': 失败的断言:第 109 行 pos 12:'_positions.length == 1'
这是我的代码:
Expanded(
child: Container(
height: MediaQuery.of(context).size.height * 10,
child: TinderSwapCard(
swipeUp: true,
swipeDown: true,
orientation: AmassOrientation.BOTTOM,
totalNum: userData.length,
stackNum: 3,
swipeEdge: 6.0,
maxWidth:
MediaQuery.of(context).size.width * 0.9,
maxHeight:
MediaQuery.of(context).size.height * 0.9,
minWidth:
MediaQuery.of(context).size.width * 0.8,
minHeight:
MediaQuery.of(context).size.width * 0.8,
allowVerticalMovement: true,
cardBuilder: (context, index) => Container(
child: Stack(
fit: StackFit.passthrough,
alignment: Alignment.center,
children: [
StreamBuilder(
stream: firestore
.collection('Image')
.doc(userData[index].id)
.collection('Photos')
.orderBy('timestap')
.snapshots(),
builder: (context, snapsoht) {
if (!snapsoht.hasData) {
return Center(
child:
CircularProgressIndicator(),
);
}
return PageView.builder(
pageSnapping: true,
physics:
NeverScrollableScrollPhysics(),
controller: _pageController,
itemCount:
snapsoht.data.docs.length,
itemBuilder: (ctx, index) {
return GestureDetector(
onTap: () {
_pageController.jumpToPage(
1); // for regular jump
},
child: Container(
child: Card(
semanticContainer: true,
clipBehavior: Clip
.antiAliasWithSaveLayer,
child: Image(
image: NetworkImage(
snapsoht.data
.docs[index]
.data()[
'picture'],
),
fit: BoxFit.fill,
),
),
),
);
});
},
),
if (direction.value <= -1)
Padding(
padding: const EdgeInsets.all(15.0),
child: Align(
alignment: Alignment.topRight,
child: Padding(
padding: EdgeInsets.all(8.0),
child: Container(
height: 100,
width: 100,
child: Image.asset(
'assets/Nope.png')),
),
),
),
if (direction.value >= 1)
Padding(
padding: const EdgeInsets.all(15.0),
child: Align(
alignment: Alignment.topLeft,
child: Padding(
padding: EdgeInsets.all(8.0),
child: Container(
height: 100,
width: 100,
child: Image.asset(
'assets/Like.png')),
),
),
),