这个功能在2017年3月3日被添加。是在@EricSeidel的请求下实现的。
可以通过PageView的controller属性实现。
controller: PageController(
initialPage: 1,
viewportFraction: 0.8,
),
PageController.viewportFraction 用于查看前一个页面和后一个页面。 PageController.initialPage 用于在应用程序启动时显示中间页面。
import 'package:flutter/material.dart';
void main() => runApp(LimeApp());
class LimeApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Lime',
home: MainPage(),
);
}
}
class MainPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
margin: EdgeInsets.symmetric(
vertical: 50.0,
),
child: PageView(
controller: PageController(
initialPage: 1,
viewportFraction: 0.8,
),
children: [
Container(margin: EdgeInsets.symmetric(horizontal: 10.0,), color: Colors.redAccent),
Container(margin: EdgeInsets.symmetric(horizontal: 10.0,), color: Colors.purpleAccent),
Container(margin: EdgeInsets.symmetric(horizontal: 10.0,), color: Colors.greenAccent)
],
),
),
);
}
}
我想不出更好的方法来增加页面之间的边距,也不知道如何避免最后一页和第一页之间的空白。
PageView.builder
来检查项目的index
并省略第一个和最后一个项目的边距。 - Luke