title: Flutter Listview.builder with http Request refreshes unwontedly when I navigate to other pages and go back
body: <p>I have this list view set up in a tab bar, when I navigate to other tabs and go back, the list view refreshes and sends a new http request to the database, how do I fix this?</p>
  
  <pre><code>import 'package:flutter/material.dart';
  import 'main.dart';
  import 'individual_page.dart';
  import 'dart:async';
  import 'dart:convert';
  import 'package:http/http.dart' as http;
  
  class FriendsPage extends StatefulWidget {
    @override
    FriendsPageState createState() =&gt; FriendsPageState();
  }
  
  class FriendsPageState extends State&lt;FriendsPage&gt; {
    Map data;
    List userData;
  
    Future getFriends() async {
      http.Response response =
          await http.get("https://reqres.in/api/users?page=2");
      debugPrint(response.body);
  
      data = json.decode(response.body);
  
      setState(() {
        userData = data["data"];
      });
    }
  
    @override
    void initState() {
      // TODO: implement initState
      super.initState();
      getFriends();
    }
  
    @override
    Widget build(BuildContext context) {
      return Scaffold(
        floatingActionButton: FloatingActionButton(
          onPressed: () {},
          backgroundColor: Colors.pink,
          child: Icon(
            Icons.add_circle,
            size: 30,
            color: Colors.white,
          ),
        ),
        floatingActionButtonLocation:            FloatingActionButtonLocation.endDocked,
        bottomNavigationBar: BottomAppBar(
          shape: CircularNotchedRectangle(),
         color: Colors.pink,
      child: Container(
        height: 30,
        child: Container(
          margin: EdgeInsets.all(15),
          child: Center(
            child: Text(
              "Social}",
              style: TextStyle(color: Colors.white, fontSize: 20),
               ),
             ),
          ),
          ),
       ),
        body: Container(
        child: ListView.builder(
      itemCount: userData == null ? 0 : userData.length,
      itemBuilder: (BuildContext context, int index) {
        return Card(
          elevation: 0,
          margin: EdgeInsets.all(5),
          child: Padding(
            padding: const EdgeInsets.all(10.0),
            child: Row(
              children: &lt;Widget&gt;[
                CircleAvatar(
                  backgroundImage: NetworkImage(userData[index].   ["avatar"]),
                ),
                Container(
                  padding: EdgeInsets.all(18),
                  child: Text(
                    "${userData[index]["first_name"]} "
                        "${userData[index]["last_name"]}",
                      style: TextStyle(fontSize: 14),
                  ),
              )
               ],
            ),
              ),
           );
         },
       )),
  );
  </code></pre>
  
  <p>}
  }</p>
  
  <p>I want the ListView to load once and then stay loaded in the background, I don't want it to reload every time I navigate pages!</p>