Home > OS >  flutter circular progressbar with navigator
flutter circular progressbar with navigator

Time:12-02

I have two pages P1 and P2 .P1 has a button that navigates to P2. P2 has a function to list all pdf from the device. I want to show the circular progress bar with P1 button and want to navigate and remove the circular bar once all files get

CodePudding user response:

This is just Example That can help you.

// Test1 page

import 'package:demostack/test2page.dart';
import 'package:flutter/material.dart';

class Test1Page extends StatelessWidget {
  const Test1Page({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: TextButton(
            onPressed: () {

             // Navigat to Other Page

              Navigator.of(context).push(MaterialPageRoute(
                builder: (context) => const Test2Page(),
              ));
            },
            child: const Text('goto 2',style: TextStyle(fontSize: 30),)),
      ),
    );
  }
}

//Test2Page

import 'package:demostack/test3page.dart';
import 'package:flutter/material.dart';

class Test2Page extends StatefulWidget {
  const Test2Page({Key? key}) : super(key: key);

  @override
  _Test2PageState createState() => _Test2PageState();
}

    class _Test2PageState extends State<Test2Page> {
    //one bool var to know is processing or not
    //you can make this variable when your files are processing
    bool isProgress=false;
    
      @override
      void initState() {
    
        Future.delayed(Duration(seconds: 3),(){
         setState(() {
            //make this variable true when you get your files
           isProgress=true;
         });
        });
        super.initState();
      }
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          body: Center(
    
            //set this condition where you are showing your files.
            child:isProgress==false?CircularProgressIndicator(color: Colors.red,): TextButton(
                onPressed: () => Navigator.of(context).push(MaterialPageRoute(
                  builder: (context) => const Test3Page(),
                )),
                child: const Text('goto 3',style: TextStyle(fontSize: 30))),
          ),
        );
      }
    }
  • Related