如何将不同的项目添加到页面视图 Flutter
How to add different items to a Page View Flutter
我有这段代码可以让我在包含文本的卡片之间滚动。但是,它所做的只是在每张卡片上添加相同的文本。我想显示保存在里面的两段单独的文本
HomeInfo()
Achieve()
这是我目前拥有的代码:
SizedBox(
height: 300,
child: PageView.builder(
itemCount: 2,
controller: PageController(viewportFraction: 0.7),
onPageChanged: (int index) =>
setState(() => _index = index),
itemBuilder: (_, i) {
return Transform.scale(
scale: i == _index ? 1 : 0.9,
child: Card(
elevation: 6,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(20)),
child: Center(
child: HomeInfo(),
),
),
);
},
),
),
我真的很困惑该怎么做。 (我刚开始接触编码)
谢谢
您需要检查索引和 return 适当的小部件。
可以这样实现:
SizedBox(
height: 300,
child: PageView.builder(
itemCount: 2,
controller: PageController(viewportFraction: 0.7),
onPageChanged: (int index) =>
setState(() => _index = index),
itemBuilder: (_, i) {
return Transform.scale(
scale: i == _index ? 1 : 0.9,
child: Card(
elevation: 6,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(20)),
child: Center(
child: i == 0 ? HomeInfo() : Achieve(), // this line
),
),
);
},
),
),
我有这段代码可以让我在包含文本的卡片之间滚动。但是,它所做的只是在每张卡片上添加相同的文本。我想显示保存在里面的两段单独的文本
HomeInfo()
Achieve()
这是我目前拥有的代码:
SizedBox(
height: 300,
child: PageView.builder(
itemCount: 2,
controller: PageController(viewportFraction: 0.7),
onPageChanged: (int index) =>
setState(() => _index = index),
itemBuilder: (_, i) {
return Transform.scale(
scale: i == _index ? 1 : 0.9,
child: Card(
elevation: 6,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(20)),
child: Center(
child: HomeInfo(),
),
),
);
},
),
),
我真的很困惑该怎么做。 (我刚开始接触编码) 谢谢
您需要检查索引和 return 适当的小部件。
可以这样实现:
SizedBox(
height: 300,
child: PageView.builder(
itemCount: 2,
controller: PageController(viewportFraction: 0.7),
onPageChanged: (int index) =>
setState(() => _index = index),
itemBuilder: (_, i) {
return Transform.scale(
scale: i == _index ? 1 : 0.9,
child: Card(
elevation: 6,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(20)),
child: Center(
child: i == 0 ? HomeInfo() : Achieve(), // this line
),
),
);
},
),
),