如何从项目列表访问图像?

时间:2020-03-21 14:43:33

标签: list flutter dart

我的文本和图像混合在一起,我想将适用的文本和图像放到一张卡上。当前代码适用于文本,但是,当我尝试添加图像时,总是出现错误。有谁知道该怎么做?

感谢您的帮助!

class Episode {
  String seasonEpisode;
  String airDate;
  Image epImage;

  Episode({this.seasonEpisode, this.airDate, this.epImage});
}

class EpisodeList extends StatefulWidget {

  /*final Episode episodes;*/

  @override
  _EpisodeListState createState() => _EpisodeListState();
}

class _EpisodeListState extends State<EpisodeList> {
  List<Episode> episodes = [
    Episode(seasonEpisode: 'S24:E1', airDate: 'February 18, 2020', epImage: Image.asset('assets/Bachelor1.jpeg')),
    Episode(seasonEpisode: 'S24:E2', airDate: 'February 25, 2020', epImage: Image.asset('assets/Bachelor1.jpeg')),
    Episode(seasonEpisode: 'S24:E3', airDate: 'February 31, 2020', epImage: Image.asset('assets/Bachelor1.jpeg')),
  ];

  Widget epCardTemplate(episode) {
    return Card(
      margin: const EdgeInsets.fromLTRB(16.0, 16.0, 16.0, 0.0),
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.stretch,
        children: <Widget>[
          Image.asset(episode.epImage),
          Text(
            episode.seasonEpisode
          ),
          SizedBox(height: 6.0),
          Text(
            episode.airDate
          ),
        ],
      ),
    );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: DARK_GREY_COLOR,
      body: Column(
        children: episodes.map((episode) => epCardTemplate(episode)).toList(),
      )
    );
  }
}

1 个答案:

答案 0 :(得分:0)

所以您在代码中所做的等同于

children: <Widget>[
          Image.asset(Image.asset('assets/......')),
          Text(
            episode.seasonEpisode
          ),
          SizedBox(height: 6.0),
          Text(
            episode.airDate
          ),
        ],

基本上,您是将图像放入另一个图像小部件中。