Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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_Flutter Layout_Flutter Animation - Fatal编程技术网

Flutter 如何在中心更大的地方制作旋转木马?(颤振)

Flutter 如何在中心更大的地方制作旋转木马?(颤振),flutter,dart,flutter-layout,flutter-animation,Flutter,Dart,Flutter Layout,Flutter Animation,我想要一个幻灯片,你可以看到三个容器,中间的容器应该比另外两个大 它应该是这样的: 我尝试将enlargeCenterPage:设置为true,但它仅适用于viewportFraction:0.8 这就是它现在的样子: 这是我使用、、旋转木马滑块“^1.4.1”插件的代码: “导入”包:旋转木马滑块/旋转木马滑块.dart'; 进口“包装:颤振/材料.省道”; 导入“包:provider/provider.dart”; 导入“../classes/konto.dart”; 导入“../pro

我想要一个幻灯片,你可以看到三个容器,中间的容器应该比另外两个大

它应该是这样的:

我尝试将enlargeCenterPage:设置为true,但它仅适用于viewportFraction:0.8

这就是它现在的样子:

这是我使用、、旋转木马滑块“^1.4.1”插件的代码:

“导入”包:旋转木马滑块/旋转木马滑块.dart'; 进口“包装:颤振/材料.省道”; 导入“包:provider/provider.dart”; 导入“../classes/konto.dart”; 导入“../providers/account_type.dart”; 类Carousel扩展StatefulWidget{ @凌驾 _CarouseState createState=>_CarouseState; } 类_CarouselState扩展状态{ @凌驾 小部件构建上下文上下文{ 退货消费者 生成器:ctx、konto、child=>CarouselSlider.builder 高度:MediaQuery.ofcontext.size.height*0.5, //realPage:1, 专题:16/4, 视口分数:0.4, 初始页:0, 启用无限滚动:正确, 反面:错, 自动播放:对, 自动播放间隔:持续时间秒数:4, 自动播放动画持续时间:持续毫秒:800, 自动播放曲线:Curves.FastOutSwowin, PauseAutopLayoutTouch:持续时间秒数:10, 放大中心页:正确, 滚动方向:轴水平, itemCount:konto.kontos.length, itemBuilder:BuildContext上下文,int i{ Map kontoHier=konto.kontos; 字符串键=kontoHier.keys.elementAti; 回来 容器 身高:200, 子级:ColumnmainAxisAlignment:MainAxisAlignment.center, 儿童:[ 文本 kontoHier[key]。标题, 样式:Theme.ofcontext.textTheme.title, , 容器 身高:150, 宽度:150, 边距:边缘集。全部10.0, 装饰:盒子装饰 颜色:颜色。透明, 边界:边界 颜色:颜色。白色54, 宽度:2, , 形状:BoxShape.circle, 子项:kontoHier[key]。图标, , 文本 “${kontoHier[key].kontostand}”, 样式:Theme.ofcontext.textTheme.title, , ] , ; }, ; }
} 使用如图所示的缩放小部件

import 'package:carousel_slider/carousel_slider.dart';
    import 'package:flutter/material.dart';

    class CArousel extends StatefulWidget {
      @override
      _CArouselState createState() => _CArouselState();
    }

    class _CArouselState extends State<CArousel> {
      int _current = 0;

      @override
      Widget build(BuildContext context) {
        return Scaffold(
          body: Container(
              padding: EdgeInsets.only(top: 200),
              child: CarouselSlider.builder(
                  viewportFraction: 0.7,
                  initialPage: _current,
                  onPageChanged: (index) {
                    setState(() {
                      _current = index;
                    });
                  },
                  itemCount: 6,
                  itemBuilder: (ctx, int index) {
                    return Transform.scale(
                      scale: index == _current ? 1 : 0.8,
                      child: Container(
                        height: 400,
                        width: 300,
                        color: Colors.red,
                        child: Center(
                          child: Text(
                            "$index",
                            style: TextStyle(fontSize: 30),
                          ),
                        ),
                      ),
                    );
                  })),
        );
      }
    }

比率仍然没有改变,但谢谢你的回答。还有其他方法吗?您可以使用Transform.scale小部件,通过匹配当前索引来缩放活动子项。这是一个好主意。如何匹配当前索引?我试着做,缩放:I==键?1.5:1,但没有小部件符合if语句。我如何找到当前的索引?我认为它不起作用,因为需要itemcounter。我已经编辑了我的答案,我希望这能消除迷雾