我正在按照教程building-a-social-network-with-flutter在 flutter 中编写一个基本的 loadmore 列表视图:
定义一个 typedef 函数作为列表视图适配器,它为每个项目返回一个小部件:
typedef Widget WidgetAdapter<T>(T t);
Run Code Online (Sandbox Code Playgroud)我的基本列表视图小部件:
class LoadingListView<T> extends StatefulWidget{
...
final WidgetAdapter<T> widgetAdapter;
...
@override createState() => new _LoadingListViewState();
}
Run Code Online (Sandbox Code Playgroud)我的基本列表视图状态:
class _LoadingListViewState<T> extends State<LoadingListView<T>> {
...
List<T> objects = [];
...
Widget itemBuilder(BuildContext context, int index) {
return widget.widgetAdapter != null ? widget.widgetAdapter(objects[index]);
: new Container();
}
}
Run Code Online (Sandbox Code Playgroud)在我的 UserList 小部件中:
@override
Widget build(BuildContext context) {
Widget w;
w = new LoadingListView<User>(
request, widgetAdapter: adapt, pageSize: widget.pageSize, pageThreshold: widget.pageThreshold);
return w;
}
Widget adapt(User user){
return new UserItem(user); //return widget UserItem
}
Run Code Online (Sandbox Code Playgroud)
我收到错误:
type '(User) => Widget' is not a subtype of type '(dynamic) => Widget'
Run Code Online (Sandbox Code Playgroud)如何修复它。请帮我。非常感谢你。
您的 StatefullWidget 类中的 createState() 方法存在问题。
像这样更新你的 createState() 方法。
@override
State createState() => new _LoadingListViewState<T>()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1279 次 |
| 最近记录: |