flultter listview异常type '(BuildContext, int) => dynamic' is not a subtype of type '(BuildContext, int) => Widget'

type '(BuildContext, int) => dynamic' is not a subtype of type '(BuildContext, int) => Widget'

源码如下:

import 'package:flutter/material.dart';
import 'post.dart';

void main() {
  runApp(MaterialApp(
    title: 'Returning Data',
    home: HomePage(),
  ));
}

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text('Flutter SnackBar'),
        ),
        body: Center(
          child: new ListViewLayout(),
        ));
  }
}

class ListViewLayout extends StatelessWidget {
  _istviewItemBuilder(BuildContext context, int index) {
    return Text(posts[index].author);
  }

  @override
  Widget build(BuildContext context) {
    return ListView.builder(
        itemCount: posts.length, itemBuilder: _istviewItemBuilder);
  }
}

原因是因为_istviewItemBuilder没写 返回值类型Widget 加上就可以

import 'package:flutter/material.dart';
import 'post.dart';

void main() {
  runApp(MaterialApp(
    title: 'Returning Data',
    home: HomePage(),
  ));
}

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text('Flutter SnackBar'),
        ),
        body: Center(
          child: new ListViewLayout(),
        ));
  }
}

class ListViewLayout extends StatelessWidget {
  Widget _istviewItemBuilder(BuildContext context, int index) {
    return Text(posts[index].author);
  }

  @override
  Widget build(BuildContext context) {
    return ListView.builder(
        itemCount: posts.length, itemBuilder: _istviewItemBuilder);
  }
}
原文地址:https://www.cnblogs.com/mingfeng002/p/11592774.html