dart - Flutter 页面 View 不显示两张幻灯片

标签 dart flutter flutter-layout

我正在构建一个具有页面 View 的 flutter 应用程序。我想在屏幕上显示两张幻灯片。但是当使用 Pageview 时,我给 viewportFraction is 0.5 。在第一张幻灯片之前和最后一张幻灯片之后显示空白。由于空白,两张幻灯片没有完全显示,我想删除空白。我的代码如下所示

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
    return MaterialApp(
    title: 'MyApp',
    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: 0,
            viewportFraction: 0.5,
        ),
        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)
        ],
        ),
    ),
    );
}
}

截图如下

screenshot

最佳答案

作为一个选项

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'MyApp',
      home: MainPage(),
    );
  }
}

class MainPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Container(
        margin: EdgeInsets.symmetric(vertical: 50.0),
        child: LayoutBuilder(builder: (context, snapshot) {
          final width = snapshot.maxWidth / 2; // magic is here
          return ListView(
            itemExtent: width,
            physics: const PageScrollPhysics(), // and here
            scrollDirection: Axis.horizontal,
            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.amberAccent),
              Container(margin: EdgeInsets.symmetric(horizontal: 10.0), color: Colors.blueAccent),
              Container(margin: EdgeInsets.symmetric(horizontal: 10.0), color: Colors.pinkAccent),
              Container(margin: EdgeInsets.symmetric(horizontal: 10.0), color: Colors.greenAccent)
            ],
          );
        }),
      ),
    );
  }
}

enter image description here

关于dart - Flutter 页面 View 不显示两张幻灯片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56181187/

相关文章:

android-studio - 在 Android Studio 中使用 Flutter 调试时如何 "Set Value..."

flutter - 根据最小尺寸包裹小部件,然后拉伸(stretch)它们以填充可用宽度

flutter - 如何让黄色容器扩展并填充其紫色 parent 可用的其余空间

flutter - 正确使用肘

dart - flutter 数据 != null

google-chrome - 在 Debian 7 上编译 Dart 和 Dartium

dart - 将字符串作为 FontAwesomeIcons 传递

android-studio - Dart 的 SDK 在/flutter 文件夹中的什么位置?

firebase - Flutter/Firebase_Auth:生成函数返回null

flutter - 如何在 Flutter 上创建复制到剪贴板事件?