问题描述
我在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()),);
}
}