【发布时间】:2019-03-26 10:58:04
【问题描述】:
【问题讨论】:
【问题讨论】:
你可以通过一个PageController
来控制一个PageView中显示多少页var controller = PageController(viewportFraction: 1 / 3);
然后将其传递给您的PageView:
PageView(
controller: controller,
...
),
【讨论】:
您必须使用 LayoutBuilder 来检查最大宽度,然后您可以相应地设置 PageController(viewportFraction: );。
这是一个例子:
PageController pageController;
@override
Widget build(BuildContext context) {
return Scaffold(
body: LayoutBuilder(builder: (context, constrains) {
if (constrains.maxWidth < 600) {
pageController = PageController(viewportFraction: 1.0);
} else {
pageController = PageController(viewportFraction: 0.3);
}
return PageView.builder(
controller: pageController,
itemCount: places.length,
itemBuilder: (context, index) {
// return your view for pageview
},
);
}),
);
}
【讨论】:
对已接受答案的一些补充:如果您想显示两个或其他偶数页,请使用 padEnds: false
PageView.builder(
controller: PageController(
viewportFraction: 1/2,
),
padEnds: false,
itemCount: ...,
itemBuilder: (context, index) {
return ...;
},
);
【讨论】:
PageView.builder(
controller: PageController(
viewportFraction: 0.8,
),
padEnds: false,
itemCount: ...,
itemBuilder: (context, index) {
return ...;
},
);
为我工作
【讨论】: