Flutter 如何在Flatter中添加文本和旋转木马图像?
我试图在文本中添加旋转木马。但到目前为止,我只能添加图像转盘,不知道如何添加文本。请帮帮我。全新的。 我希望输出像上面的图像和下面的文本一样,但两者都需要同时滑动 我不知道在哪里添加文本字段。我用youtube上的一个例子制作了这个旋转木马。但没有带文本的旋转木马图像的示例。我手动尝试了一些东西,但结果不太好。 请帮我修一下。多谢各位Flutter 如何在Flatter中添加文本和旋转木马图像?,flutter,flutter-layout,Flutter,Flutter Layout,我试图在文本中添加旋转木马。但到目前为止,我只能添加图像转盘,不知道如何添加文本。请帮帮我。全新的。 我希望输出像上面的图像和下面的文本一样,但两者都需要同时滑动 我不知道在哪里添加文本字段。我用youtube上的一个例子制作了这个旋转木马。但没有带文本的旋转木马图像的示例。我手动尝试了一些东西,但结果不太好。 请帮我修一下。多谢各位 class MyApp extends StatelessWidget { @override Widget build(BuildContext c
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: MyHomePage(title: 'Slider'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
PageController pageController;
//Images List
List<String> images = [
'',
];
@override
void initState() {
super.initState();
pageController = PageController(initialPage: 1, viewportFraction: 0.6);
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: PageView.builder(
controller: pageController,
itemCount: images.length,
itemBuilder: (context, position) {
return imageSlider(position);
}
)
);
}
imageSlider(int index) {
return AnimatedBuilder(
animation: pageController,
builder: (context, widget) {
double value = 1;
if(pageController.position.haveDimensions){
value = pageController.page - index;
value = (1 - (value.abs() * 0.3.clamp(0.0, 1.0)));
}
return Center(
child: SizedBox(
height: Curves.easeInOut.transform(value) * 400.0,
width: Curves.easeInOut.transform(value) * 350.0,
child: widget,
),
);
},
child: Container(
margin: EdgeInsets.all(10.0),
child: Image.asset(images[index],fit: BoxFit.cover),
),
);
}
}
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回材料PP(
主页:我的主页(标题:“滑块”),
);
}
}
类MyHomePage扩展StatefulWidget{
MyHomePage({Key,this.title}):超级(Key:Key);
最后的字符串标题;
@凌驾
_MyHomePageState createState()=>\u MyHomePageState();
}
类_MyHomePageState扩展状态{
页面控制器;
//图像列表
列表图像=[
'',
];
@凌驾
void initState(){
super.initState();
pageController=pageController(初始页:1,视口分数:0.6);
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
正文:PageView.builder(
控制器:页面控制器,
itemCount:images.length,
itemBuilder:(上下文、位置){
返回图像滑块(位置);
}
)
);
}
图像滑块(整数索引){
返回动画生成器(
动画:页面控制器,
生成器:(上下文,小部件){
双值=1;
if(页面控制器.位置.尺寸){
值=pageController.page-索引;
value=(1-(value.abs()*0.3.clamp(0.0,1.0));
}
返回中心(
孩子:大小盒子(
高度:曲线.easeInOut.transform(值)*400.0,
宽度:曲线.easeInOut.transform(值)*350.0,
孩子:小部件,
),
);
},
子:容器(
保证金:所有边缘套(10.0),
子项:Image.asset(图像[索引],适合:BoxFit.cover),
),
);
}
}
使用列而不是容器,因此只需替换此项:
child:容器(
保证金:所有边缘套(10.0),
子项:Image.asset(图像[索引],适合:BoxFit.cover),
),
为此:
child:Column(
//把孩子集中起来。
mainAxisAlignment:mainAxisAlignment.center,
crossAxisAlignment:crossAxisAlignment.center,
儿童:[
//第一个孩子
容器(
保证金:所有边缘套(10.0),
子项:Image.asset(图像[索引],适合:BoxFit.cover),
),
//第二胎
正文(
"福",,
样式:TextStyle(
//在此处添加文本的样式
),
),
]
),
或者,您可以使用现成的carousal,而不是构建自己的carousal,例如:或
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Text(
heading,
style: TextStyle(
color: Colors.white,
fontSize: 20.0,
fontWeight: FontWeight.bold,
),
),
Padding(
padding: const EdgeInsets.all(10.0),
child: Text(
sub_heading,
style: TextStyle(
color: Colors.white,
fontSize: 15.0,
),
//textAlign: TextAlign.center,
),
),
],
),
child:Column(
mainAxisAlignment:mainAxisAlignment.center,
crossAxisAlignment:crossAxisAlignment.center,
儿童:[
正文(
标题
样式:TextStyle(
颜色:颜色,白色,
字体大小:20.0,
fontWeight:fontWeight.bold,
),
),
填充物(
填充:常数边集全部(10.0),
子:文本(
小标题,
样式:TextStyle(
颜色:颜色,白色,
字体大小:15.0,
),
//textAlign:textAlign.center,
),
),
],
),
您没有添加演示您想要实现的目标的图像。已添加。请检查,但你给的代码使用静态文本对吗?,但我需要为每个图像不同的文本。就像我在上面附上的图片一样是的,我向你展示了这个想法。然后你可以像图片一样使用文本列表。或者,您可以使用地图列表,以便在同一地图中显示图像的url及其文本。或者您可以创建一个项目类,例如,它有两个属性imageUrl和text,然后创建列表。。。这么多的解决方案……你有什么解决办法吗?我还需要carousal幻灯片中的带文本的图像。请详细说明代码的放置位置以及代码将如何解决问题。