我在PageView.builder
中有一个StatelessWidget
。我需要获取当前查看页面的当前索引号,以显示在我的版本的文本小部件中。
希望我可以在文本小部件中简单地使用currentIndex.toString()
作为变量,但是Android Studio用红色下划线标出并警告我undefined name currentIndex
。如何获得正确的变量?
class StageBuilder extends StatelessWidget {
final List<SpeakContent> speakcrafts;
StageBuilder(this.speakcrafts);
final PageController controller = PageController(initialPage: 0);
@override
Widget build(context) {
return PageView.builder(
controller: controller,
itemCount: speakcrafts.length,
itemBuilder: (context, int currentIndex) {
return createViewItem(speakcrafts[currentIndex], context);
},
);
}
Widget createViewItem(SpeakContent speakcraft, BuildContext context) {
return Container(
child: Text(currentIndex.toString()),
)
}
}
最佳答案
您需要将currentIndex
传递到createViewItem
中
class StageBuilder extends StatelessWidget {
final List<SpeakContent> speakcrafts;
StageBuilder(this.speakcrafts);
final PageController controller = PageController(initialPage: 0);
@override
Widget build(context) {
return PageView.builder(
controller: controller,
itemCount: speakcrafts.length,
itemBuilder: (context, int currentIndex) {
return createViewItem(speakcrafts[currentIndex], context, currentIndex);
},
);
}
Widget createViewItem(SpeakContent speakcraft, BuildContext context, int currentIndex) {
return Container(
child: Text(currentIndex.toString()),
);
}
}
关于flutter - Flutter/Dart-获取要在Text Widget中使用的PageView.Builder的索引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63528660/