158 votes

Flutter : Filtrer la liste en fonction de certaines conditions

J'ai une liste de films. Elle contient tous les films animés et non animés. Pour identifier s'il s'agit d'un film animé ou non, il existe un indicateur appelé isAnimated .

Je veux afficher uniquement les films d'animation. J'ai écrit un code pour filtrer uniquement les films d'animation, mais je reçois une erreur.

import 'package:flutter/material.dart';

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'Flutter Demo',
      theme: new ThemeData(

        primarySwatch: Colors.blue,
      ),
      home: new HomePage(),
    );
  }
}

class Movie {
  Movie({this.movieName, this.isAnimated, this.rating});
  final String movieName;
  final bool isAnimated;
  final double rating;
}

List<Movie> AllMovies = [
  new Movie(movieName: "Toy Story",isAnimated: true,rating: 4.0),
  new Movie(movieName: "How to Train Your Dragon",isAnimated: true,rating: 4.0),
  new Movie(movieName: "Hate Story",isAnimated: false,rating: 1.0),
  new Movie(movieName: "Minions",isAnimated: true,rating: 4.0),
];

class HomePage extends StatefulWidget{
  @override
  _homePageState createState() => new _homePageState();
}

class _homePageState extends State<HomePage> {

  List<Movie> _AnimatedMovies = null;

  @override
  void initState() {
    super.initState();
    _AnimatedMovies = AllMovies.where((i) => i.isAnimated);
  }

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      body: new Container(
        child: new Text(
            "All Animated Movies here"
        ),
      ),
    );
  }
}

WhereIterable is not subtype of type List

-1voto

Imran Sefat Points 15

Ici cours est une liste. Les éléments qui sont notés en étoile sont placés dans la liste des cours. étoilé est une variable de type bool.

courses = courses.where((element) => !element.starred).toList();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X