Flutter 颤振:如何在文本列表中为中间文本设置更大的字体?

Flutter 颤振:如何在文本列表中为中间文本设置更大的字体?,flutter,dart,flutter-animation,Flutter,Dart,Flutter Animation,我想实现这样的目标 在这里,当用户滚动列表时,它应该将中间元素的字体大小调整为更大,将其他元素的字体大小调整为更小 我试过这样做,但是没有得到想要的结果 import 'package:flutter/material.dart'; import 'dart:math' as math; import 'package:flutter_hooks/flutter_hooks.dart'; class BloodPressureValuesWidget extends HookWidget {

我想实现这样的目标

在这里,当用户滚动列表时,它应该将
中间
元素的字体大小调整为
更大
,将其他元素的字体大小调整为
更小

我试过这样做,但是没有得到想要的结果

import 'package:flutter/material.dart';
import 'dart:math' as math;
import 'package:flutter_hooks/flutter_hooks.dart';
class BloodPressureValuesWidget extends HookWidget {
  final List<String> mm = ['110', '110', '110', '110', '110','110', '110', '110', '110', '110'];
  final List<String> hg = ['70', '70', '70', '70', '70','70', '70', '70', '70', '70'];
  final List<String> date = [
    '2/12/2020',
    '3/12/2020',
    '4/12/2020',
    '5/12/2020',
    '6/12/2020',
  ];
  final List<String> time = [
    '16.10pm',
    '10:30am',
    '15:30pm',
    '3:40am',
    '15:40pm',
  ];
  @override
  Widget build(BuildContext context) {
    final width = MediaQuery.of(context).size.width;
    final pageController =
        usePageController(keepPage: false, viewportFraction: 0.4);
    return Container(
      height: width * 0.27,
      width: double.infinity,
      margin: EdgeInsets.only(bottom: width * 0.021),
      child: PageView.builder(
        itemCount: 10,
        scrollDirection: Axis.horizontal,
        controller: pageController,
        itemBuilder: (context, index) {
          return AnimatedBuilder(
            animation: pageController,
            builder: (context, child) {
              var value = 1.0;
              if (pageController.position.haveDimensions) {
                value = pageController.page - index;
                value = (1 - (value.abs() * .5)).clamp(0.0, 1.0);
              }
              return Center(
                child: SizedBox(
                  height: Curves.easeOut.transform(value) * width * 0.4,
                  width: Curves.easeOut.transform(value) * width * 0.25,
                  child: child,
                ),
              );
            },
            child: Container(...), //The text container shown in the image
            ),
          );
        },
      ),
    );
  }
}
导入“包装:颤振/材料.省道”;
导入'dart:math'作为数学;
进口“包装:颤振钩/颤振钩.省道”;
类BloodPressureValuesWidget扩展了HookWidget{
最终列表mm=['110','110','110','110','110','110','110','110','110','110','110'];
最终列表hg=['70','70','70','70','70','70','70','70','70','70'];
最终名单日期=[
'2/12/2020',
'3/12/2020',
'4/12/2020',
'5/12/2020',
'6/12/2020',
];
最终列表时间=[
‘下午十六时十分’,
“上午10:30”,
“下午15:30”,
“凌晨3:40”,
“下午15:40”,
];
@凌驾
小部件构建(构建上下文){
最终宽度=MediaQuery.of(context).size.width;
最终页面控制器=
usePageController(keepPage:false,viewportFraction:0.4);
返回容器(
高度:宽度*0.27,
宽度:double.infinity,
页边距:仅限边缘组(底部:宽度*0.021),
子项:PageView.builder(
物品计数:10,
滚动方向:轴水平,
控制器:页面控制器,
itemBuilder:(上下文,索引){
返回动画生成器(
动画:页面控制器,
生成器:(上下文,子对象){
var值=1.0;
if(页面控制器.位置.尺寸){
值=pageController.page-索引;
value=(1-(value.abs()*.5)).clamp(0.0,1.0);
}
返回中心(
孩子:大小盒子(
高度:曲线。缓和。变换(值)*宽度*0.4,
宽度:曲线。缓和。变换(值)*宽度*0.25,
孩子:孩子,
),
);
},
child:Container(…),//图像中显示的文本容器
),
);
},
),
);
}
}

有人能告诉我如何才能做到这一点吗?

试试
ListViewScrollView
class,查看更多信息