Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 颤振行滚动效果动画_Flutter_Dart_Widget - Fatal编程技术网

Flutter 颤振行滚动效果动画

Flutter 颤振行滚动效果动画,flutter,dart,widget,Flutter,Dart,Widget,我当前的项目有一个可以滚动的行,可以很好地工作,但是我找不到一种方法来进行某种静态滚动,当你滚动到一个项目时,该项目会自动居中 这就是我目前拥有的: 当卡片滚动时,当滚动完成时,卡片将保持在原来的位置: 我想要达到的效果是,当滚动到下一张卡时,卡会在中心对齐 有没有这样的小部件?试试这个 import 'package:flutter/material.dart'; final Color darkBlue = Color.fromARGB(255, 18, 32, 47); void ma

我当前的项目有一个可以滚动的行,可以很好地工作,但是我找不到一种方法来进行某种静态滚动,当你滚动到一个项目时,该项目会自动居中

这就是我目前拥有的:

当卡片滚动时,当滚动完成时,卡片将保持在原来的位置:

我想要达到的效果是,当滚动到下一张卡时,卡会在中心对齐

有没有这样的小部件?

试试这个

import 'package:flutter/material.dart';

final Color darkBlue = Color.fromARGB(255, 18, 32, 47);

void main() {
 runApp(MyApp()); 
}

class MyApp extends StatelessWidget {

final List<String> images = ["Me", "You", "Foo", "Baa"];

final PageController controller = PageController(viewportFraction:0.8);

@override
Widget build(BuildContext context) {
return MaterialApp(
  theme: ThemeData.dark().copyWith(scaffoldBackgroundColor: darkBlue),
  debugShowCheckedModeBanner: false,
  home: Scaffold(
    body: PageView.builder(
      controller: controller,
      itemCount: images.length,
      itemBuilder: (context,index){
        return Container(
          margin: EdgeInsets.all(16),
          child: Center(child:Text(images[index])),
          color: Colors.grey.shade200
        );

      }
    ),
   ),
  );
 }
 }

class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
 return Text('Hello, World!', style: Theme.of(context).textTheme.headline4);
} 
}

解决办法很简单:

 Padding(
      padding: const EdgeInsets.symmetric(vertical: 80),
      child: Container(
        child: PageView(
          controller: controller,
          scrollDirection: Axis.horizontal,
          pageSnapping: true,
          physics: BouncingScrollPhysics(),
          children: [CardMovie(), CardMovie(), CardMovie()],
        ),
      ),
    )
使用PageView小部件并提供填充顶部,因为小部件的高度为全屏


您可以使用pageview builder在某些视图端口上实现同样的功能。您可以尝试@Dunggo谢谢,我将保存它以备下次使用project@meditat谢谢,这正是我需要的。PageView小部件完成了所有操作work@Jos欢迎光临