技术胖flutter基础例子(路由)

  • 赋值页面的跳转与返回
import 'package:flutter/material.dart';

void main() {
  runApp(const MaterialApp(
    title: "导航演示01",
    home: FirstScreen(),
  ));
}

class FirstScreen extends StatelessWidget {
  const FirstScreen({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text("导航页面")),
      body: Center(
        child: MaterialButton (
          onPressed: () {
            Navigator.push(context,
                MaterialPageRoute(builder: (context) => const SecondScreen()));
          },
          color: Colors.blue,
          textColor: Colors.white,
          child: const Text("导航页面"),
        ),
      ),
    );
  }
}

class SecondScreen extends StatelessWidget {
  const SecondScreen({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text("技术胖商品详情页")),
      body: Center(
        child: MaterialButton (
          color: Colors.blue,
          textColor: Colors.white,
          child: const Text("查看商品详情页"),
          
          onPressed: () {
            Navigator.pop(context);
          },
        ),
      ),

    );
  }
}

  • 页面跳转并返回数据
import 'package:flutter/material.dart';

void main() {
  runApp(const MaterialApp(
    title: '页面跳转返回数据',
    home: FirstPage(),
  ));
}

class FirstPage extends StatelessWidget {
  const FirstPage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('找小姐姐要电话')),
      body: const RouteButton(),
    );
  }
}

class RouteButton extends StatelessWidget {
  const RouteButton({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialButton(
      color: Colors.blue,
      textColor: Colors.white,
      child: const Text('去找小姐姐'),
      onPressed: () {
        navigateToYoungLady(context);
      },
    );
  }

  navigateToYoungLady(BuildContext context) async {
    final result = await Navigator.push(
        context, MaterialPageRoute(builder: (context) => const YoungLady()));
    ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(result)));
  }
}

class YoungLady extends StatelessWidget {
  const YoungLady({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: const Text('我是小姐姐'),
        ),
        body: Center(
          child: Column(
            children: <Widget>[
              MaterialButton(
                color: Colors.blue,
                textColor: Colors.white,
                onPressed: () {
                  Navigator.pop(context, '大长腿小姐姐:1870132537');
                },
                child: const Text('大长腿小姐姐'),
              ),
              MaterialButton(
                color: Colors.blue,
                textColor: Colors.white,
                onPressed: () {
                  Navigator.pop(context, '小蛮腰小姐姐:1554548457');
                },
                child: const Text('小蛮腰小姐姐'),
              )
            ],
          ),
        ));
  }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容