fluttercallbackpage-refreshbanking

How to refresh home page everytime when navigating from a any Page in the flutter mobile app?


I tried to attempt the following please help I'm new in a flutter:

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Refresh on Go Back',
      home: HomePage(),
    );
  }
}

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

class _HomePageState extends State<HomePage> {

  int id = 0;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Home'),
      ),
      body: Center(
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: <Widget>[
            Text(
              'Data: $id',
              style: Theme.of(context).textTheme.headline5,
            ),
            RaisedButton(
              child: Text('Second Page'),
              onPressed: navigateSecondPage,
            ),
          ],
        ),
      ),
    );
  }
  
  void refreshData() {
    id++;
  }

  onGoBack(dynamic value) {
    refreshData();
    setState(() {});
  }

  void navigateSecondPage() {
    Route route = MaterialPageRoute(builder: (context) => SecondPage());
    Navigator.push(context, route).then(value) => onGoBack(callBackId));
  }
}

class SecondPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Second Page'),
      ),
      body: Center(
        child: RaisedButton(
          onPressed: () {
            Navigator.pop(context);
          },
          child: Text('Go Back'),
        ),
      ),
    );
  }
}

Here I'm trying to implement a functionality to refresh the home page every time when navigating back from other pages within my application. I was only using this piece of code for testing purposes I want to implement this code in my Flutter banking app connecting to a banking institution API Thank You in advance.


Solution

  • For refreshing the page everytime, you need to call

    @override
      void initState() {
        super.initState();
      }
    

    And Inside this initState you can call your refresh data method.

    When you comes from any other page to home page your method is called first.

    Note: Your page is StatefulWidget for calling this method.