簡體   English   中英

Flutter-在另一個小部件中將 MaterialPageRoute 作為參數傳遞

[英]Flutter- pass MaterialPageRoute as parameter in another widget

我想將 MaterialPageRoute 作為參數傳遞到另一個頁面。 就像如果想將onPressed((){})傳遞到其他頁面,我們將其聲明為

FirstPage({
    this.onPressed,
  });
final GestureTapCallback onPressed;

如何將MaterialPageRoute(builder: (context) => SecondPage())作為參數傳遞給其他頁面?

這是一種方法:

class MyApp extends StatelessWidget {

  const MyApp({Key? key}): super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: FirstPage(
        materialPageRoute: MaterialPageRoute(builder: (context) => const SecondPage()),
      )
    );
  }
}

class FirstPage extends StatelessWidget {

  const FirstPage({
    Key? key,
    required this.materialPageRoute,
  }): super(key: key);

  final MaterialPageRoute materialPageRoute;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: TextButton(
          onPressed: () => Navigator.of(context).push(materialPageRoute),
          child: const Text('Navigate to SecondPage'),
        ),
      )
    );
  }
}

class SecondPage extends StatelessWidget {

  const SecondPage({Key? key}): super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: const Center(
        child: Text('Second Page'),
      ),
    );
  }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM