title: Flutter screen(list) is reloading after coming back from another screen(detail)
body: <p>I have created a Flutter application with a list. On tap of an item, I am opening detail of that item.</p>
  
  <p>The problem is whenever I come back from the detail screen, the list screen is reloaded. I don't want to reload the list every time. </p>
  
  <p>I have used BloC architecture in this.</p>
  
  <p>Below are the code snippets. Please suggest.</p>
  
  <p>Thank You.</p>
  
  <p><strong>Main</strong></p>
  
  <pre><code>    void main() {
  
    final userRepository = UserRepository();
    ApiClient apiClient = ApiClient(httpClient: http.Client());
  
    runApp(BlocProvider&lt;AuthenticationBloc&gt;(
      builder: (context) {
        return AuthenticationBloc(
            userRepository: userRepository, apiClient: apiClient)
          ..dispatch(AppStarted());
      },
      child: MyApp(userRepository: userRepository),
        ));
      }
  
      class MyApp extends StatelessWidget {
    // This widget is the root of your application.
  
    final UserRepository userRepository;
  
    MyApp({Key key, @required this.userRepository}) : super(key: key);
  
    @override
    Widget build(BuildContext context) {
      return MaterialApp(
        title: 'Flutter Demo',
        theme: ThemeData(
          primarySwatch: Colors.blue,
        ),
        home: BlocBuilder&lt;AuthenticationBloc, AuthenticationState&gt;(
          bloc: BlocProvider.of&lt;AuthenticationBloc&gt;(context),
          builder: (context, state) {
            if (state is AuthenticationUninitialized) {
              return SplashPage();
            }
            if (state is AuthenticationAuthenticated) {
              return HomePage(userRepository: userRepository);
            }
            if (state is AuthenticationUnauthenticated) {
              return LoginPage(userRepository: userRepository);
            }
            if (state is AuthenticationLoading) {
              return LoadingIndicator();
            }
  
            return null;
          },
        ),
          );
         }
       }
  </code></pre>
  
  <p><strong>List Screen</strong></p>
  
  <pre><code>class HomePage extends StatelessWidget {
  UserRepository userRepository;
  
  HomePage({@required this.userRepository}) : super();
  
  @override
  Widget build(BuildContext context) {
    ApiClient apiClient = ApiClient(httpClient: http.Client());
  
  return Scaffold(
    appBar: AppBar(
      title: Text('Home'),
    ),
    drawer: AppDrawer(userRepository),
    body: BlocProvider(
      builder: (context) {
        return HomeBloc(apiClient);
      },
      child: _HomeContent(),
    ),
    floatingActionButton: FloatingActionButton(
      onPressed: () {},
      child: Icon(Icons.add),
      backgroundColor: Colors.amberAccent,
      ),
      );
    }
  }
  
  class _HomeContent extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
      final HomeBloc homeBloc = BlocProvider.of&lt;HomeBloc&gt;(context);
  
  homeBloc.dispatch(FetchMovieList());
  
  return BlocBuilder&lt;HomeBloc, HomeState&gt;(
    builder: (context, state) {
      if (state is MovieListLoading) {
        return Center(
          child: CircularProgressIndicator(),
        );
      }
  
      if (state is MovieListLoaded) {
        List&lt;Movie&gt; topRatedMovies = state.movieList;
  
        return new ListView.builder(
          itemBuilder: (BuildContext context, int index) {
            return new ListTile(
              title: Card(
                child: Row(
                  children: &lt;Widget&gt;[
                    Image.network(ApiClient.IMAGE_BASE_URL +
                        topRatedMovies[index].poster_path),
                    Column(
                      children: &lt;Widget&gt;[
                        Text(topRatedMovies[index].title),
                      ],
                    )
                  ],
                ),
              ),
              onTap: () {
                _onListItemTapped(topRatedMovies[index].id, context);
              },
            );
          },
          itemCount: topRatedMovies.length,
        );
      }
  
      if (state is MovieListError) {
        return Center(
          child: Text('Error in calling API'),
        );
      }
  
      return Center(child: Text('Employee data not found'));
        },
     );
     }
  
  
     void _onListItemTapped(int movieId, BuildContext context) {
         Navigator.push(context,
      MaterialPageRoute(
          builder: (context) =&gt; MovieDetailPage(
                movieId: movieId,
              )));
         }
       }
  </code></pre>