viewportFraction <1的PageView跳回到最后一页

时间:2019-12-12 20:41:04

标签: flutter flutter-layout

我正在尝试创建卡的可滚动列表,这些列表卡在屏幕中央。为此,我使用了一个带有小的viewportFraction的PageView。

在加载屏幕时,第一页呈现在屏幕中央,左侧留有足够的填充,第二页的一小部分可以按预期显示。但是,当我滚动并到达最后一页时,它不会停留在原位。它会跳回到上一页。如果页面捕捉逻辑试图将页面的中心转换为屏幕的中心,但由于页面的宽度小于屏幕的宽度并且没有正确的内容而失败,我不知道。

希望这个GIF可以更好地解释我想说的话:

enter image description here

简而言之,我无法让它停留在最后一页。

以下是代码摘录:

class _PageViewWidgetState extends State<PageViewWidget> {
  PageController controller;

  @override
  initState() {
    super.initState();
    controller = new PageController(
      initialPage: 0,
      keepPage: true,
      viewportFraction: 0.75,
    );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Page View'),
      ),
      body: _buildCards(),
    );
  }

  _buildCards() {
    return Center(
      child: Container(
        height: 500,
        child: PageView.builder(
          controller: controller,
          itemCount: 3,
          itemBuilder: (context, _) => Container(
            margin: const EdgeInsets.all(15.0),
            decoration: BoxDecoration(
              borderRadius: BorderRadius.circular(30),
              color: Colors.blue,
            ),
          ),
        ),
      ),
    );
  }
}

我在PageViewPageViewController上找不到任何属性可能对此有所帮助。删除捕捉当然可以让我停留在最后一页,但是除非没有其他方法,否则我想保留捕捉效果。

0 个答案:

没有答案