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,查看更多信息