Flutter 在单独的文件中定义状态代码时,Listview不显示

Flutter 在单独的文件中定义状态代码时,Listview不显示,flutter,flutter-listview,Flutter,Flutter Listview,我对颤振开发还不熟悉,这可能是一个幼稚的问题,但我一直在学习颤振的初学者教程,我的listview没有显示出来。我更改了一些类/函数名,并将代码放在不同的文件中,但不确定这里出了什么问题,这应该是一个无限随机单词列表。 以下是完整的代码: //文件名:main.dart 导入“package:english_words/english_words.dart”; 进口“包装:颤振/材料.省道”; 导入“package:flatter_app_as/StatefulWidgetStates.dart

我对颤振开发还不熟悉,这可能是一个幼稚的问题,但我一直在学习颤振的初学者教程,我的listview没有显示出来。我更改了一些类/函数名,并将代码放在不同的文件中,但不确定这里出了什么问题,这应该是一个无限随机单词列表。
以下是完整的代码:

//文件名:main.dart
导入“package:english_words/english_words.dart”;
进口“包装:颤振/材料.省道”;
导入“package:flatter_app_as/StatefulWidgetStates.dart”;
类StatefulRandomWordsWidget扩展StatefulWidget{
@凌驾
状态createState(){
返回RandomWordsState();
}
}
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
var-wordWidget=StatefulRandomWordsWidget();
返回材料PP(
标题:“无用标题”,
家:脚手架(
appBar:appBar(标题:文本(“欢迎来到颤振”),
正文:wordWidget);
}
}
void main(){
runApp(MyApp());
}

//文件名:StatefulWidgetStates.dart
导入“package:english_words/english_words.dart”;
进口“包装:颤振/材料.省道”;
导入“package:flatter_app_as/main.dart”;
类RandomWordsState扩展状态{
最终数据列表=[];
@凌驾
小部件构建(构建上下文){
返回getListView();
}
小部件getListView(){
ListView listViewWidget=ListView.builder(
itemCount:dataList.length,
填充:边缘设置。全部(8.0),
itemBuilder:(上下文,位置){
如果(位置isOdd){
返回分隔符();
}
否则{
最终指数=pos~/2;
如果(索引>=dataList.length){
List pairs=generateWordPairs().take(10);
dataList.addAll(成对);
}
WordPair childData=数据列表[索引];
返回ListTile(标题:Text(childData.asCamelCase,样式:TextStyle(fontSize:12.0));
}
});
返回listViewWidget;
}
}
我也不明白这是什么
final index=pos~/2逻辑关于。官方文件说:

表达式i~/2将i除以2并返回一个整数结果。例如:1、2、3、4、5变为0、1、1、2、2。这将计算ListView中单词对的实际数量,减去分隔符小部件


但是我猜我用错了。

请记住,当您使用有状态的小部件时,您需要告诉框架该小部件中的某些状态(日期)已更改,需要重新构建。所以,当您向te列表添加内容时,状态会发生变化,需要重新构建。您可以通过调用
setState((){
});方法

例如:

List<WordPair> pairs = generateWordPairs().take(10);
dataList.addAll(pairs);
setState(() {});

List pairs=generateWordPairs().take(10);
dataList.addAll(成对);
setState((){});

Hi。不,它不起作用,我仍然看不到任何变化。奇怪的是,当我直接从中复制粘贴代码时,一切正常。我添加了一些,基于它的运行时,我认为listview到达末尾时的更新逻辑不起作用。