title: ListView filter search with FutureBuilder in Flutter
body: <p>i am a beginner of flutter programming. i got a problem for search feature of listview when i use future builder, when i type a letter it change the list for a second, but back to all list data after a second. i dont know what's the error, because there is no warning or errors only. i stack on this code, please helpppppppppppppppp......</p>
  
  <p>this is my code, 
  <a href="https://i.stack.imgur.com/9vqen.jpg" rel="nofollow noreferrer">Default list data</a>
  <a href="https://i.stack.imgur.com/9fjGC.jpg" rel="nofollow noreferrer">when i type letters, the list back again after a seconds</a></p>
  
  <pre><code>List mydata;
    List unfilterData;
  
    Future loadJsonData() async {
      List data = json.decode(await rootBundle.loadString('Json/indomodel.json'));
      setState(() {
        mydata = data;
        this.unfilterData = mydata;
      });
      return data;
    }
  
    Widget mylist() {
      return FutureBuilder(
        future: loadJsonData(),
        builder: (context, snapshot) {
          if (!snapshot.hasData)
            return Center(
                child: CircularProgressIndicator(
              valueColor: AlwaysStoppedAnimation(Colors.amber),
            ));
          else {
            return ListView.builder(
              itemCount: snapshot.data.length,
              itemBuilder: (BuildContext context, index) {
                return Card(
                  elevation: 0.3,
                  child: ListTile(
                    // leading: CircleAvatar(child: Icon(FontAwesomeIcons.adjust),),
                    title: Column(
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: &lt;Widget&gt;[
                        Row(
                          mainAxisAlignment: MainAxisAlignment.spaceBetween,
                          children: &lt;Widget&gt;[
                            SelectableText(
                              mydata[index]['word'],
                              // data[index]['word'],
                              style: TextStyle(
                                  fontSize: 16.0,
                                  fontWeight: FontWeight.bold,
                                  color: Colors.deepPurple.shade800),
                            ),
                            Text(
                              "My Kamus",
                              style: TextStyle(color: Colors.grey, fontSize: 10),
                            )
                          ],
                        ),
                        SizedBox(
                          height: 10.0,
                        ),
                        Text(
                          mydata[index]['trans'],
                          style: TextStyle(
                              color: Colors.grey.shade700, fontSize: 13.0),
                        )
                      ],
                    ),
                  ),
                );
              },
            );
          }
        },
      );
    }
  
    searchData(str) {
      var strExist = str.length &gt; 0 ? true : false;
  
      if (strExist) {
        var filterData = [];
  
        for (var i = 0; i &lt; unfilterData.length; i++) {
          String word = unfilterData[i]['word'];
          if (word.contains(str)) {
            filterData.add(unfilterData[i]);
          }
        }
  
        setState(() {
          this.mydata = filterData;
        });
      } else {
        setState(() {
          //
          this.mydata = this.unfilterData;
        });
      }
    }
  </code></pre>