使用PageView.builder我可以获得无限的页面列表,但只能在一个方向上,即它在另一个方向上是有限的!
默认scrollDirection的PageView是Axis.horizontal.所以我的意思是,在常规情况下,我只能向右无限滚动,而不是向左滚动.
我希望能够在两个方向无限滚动.我还没有找到办法做到这一点,尤其是因为我希望itemBuilder能够给出负面指数,这是我从未见过的.这让我想知道这是否已经实现,但我对定制解决方案持开放态度,并会尝试提出一些东西.
没有正式的方法可以在两个方向上进行无限滚动。
但是您可以改为使用PageController的initialPage属性。将其设置为一个非常大的值。然后将此值用作“索引0”。
class MyHomePage extends StatelessWidget {
final PageController pageController = new PageController(initialPage: 4242);
@override
Widget build(BuildContext context) {
return new Scaffold(body: new PageView.builder(
controller: pageController,
itemBuilder: (context, _index) {
final index = _index - 4242;
return new Container(
margin: const EdgeInsets.all(9.0),
color: Colors.red,
child: new Center(
child: new Text(index.toString()),
),
);
},
));
}
}
Run Code Online (Sandbox Code Playgroud)
我很直接地解决了它。老实说,我写这个问题和发放赏金一定是疯了。
\n\n// number is irrelevant\nfinal initialPage = (\n .161251195141521521142025 // :)\n * 1e6,).round();\nfinal itemCount = getSomeItemCount();\n\nPageView.builder(\n pageController: PageController(\n initialPage: initialPage,\n ),\n itemBuilder: (context, page) {\n final index = itemCount - (initialPage - page - 1) % itemCount - 1;\n return getPageContent(index);\n },\n);\nRun Code Online (Sandbox Code Playgroud)\n\n我不确定是否应该归功于R\xc3\xa9mi Rousselet,因为在他提出答案之前我就使用了这种方法。我只是想提一下他,因为这个问题得到了不应有的流量,他帮助我解决了我的问题:)
\n| 归档时间: |
|
| 查看次数: |
895 次 |
| 最近记录: |