还可以在 StackOverflow 上找到解决方案,但它不适用于我的情况
'_positions.isNotEmpty':ScrollController 未附加到任何滚动视图
PageView 抛出“_positions.isNotEmpty”:ScrollController 未附加到任何滚动视图
Widget _buildIntroSlider() {
return Container(
padding: EdgeInsets.symmetric(horizontal: 46.0),
child: Stack(
alignment: AlignmentDirectional.bottomCenter,
children: <Widget>[
PageView.builder(
scrollDirection: Axis.horizontal,
controller: _pageController,
onPageChanged: _onPageChanged,
itemCount: slideList.length,
itemBuilder: (ctx, i) =>
SlideItem(slide: slideList[i], bold: false),
),
],
),
);
}
Run Code Online (Sandbox Code Playgroud) 如何解决异常 -
未处理的异常:'package:flutter/src/widgets/page_view.dart':失败的断言:第 179 行位置 7:'positions.isNotEmpty':在使用它构建 PageView 之前无法访问 PageController.page。
注意:- 我在两个屏幕中使用它,当我在屏幕之间切换时,它显示上述异常。
@override
void initState() {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) => _animateSlider());
}
void _animateSlider() {
Future.delayed(Duration(seconds: 2)).then(
(_) {
int nextPage = _controller.page.round() + 1;
if (nextPage == widget.slide.length) {
nextPage = 0;
}
_controller
.animateToPage(nextPage,
duration: Duration(milliseconds: 300), curve: Curves.linear)
.then(
(_) => _animateSlider(),
);
},
);
}
Run Code Online (Sandbox Code Playgroud) 有没有办法通过使用纯 javascript 而不是 jQuery 来使用光滑的滑块?