ColorPage

tpids·2024년 9월 19일

Flutter

목록 보기
29/40

colorPage.dart

import 'package:flutter/material.dart';

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


  @override
  Widget build(BuildContext context) {

    return Scaffold(
      body: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          ElevatedButton(onPressed: (){
            // name을 구성하는 곳은 MatrialApp()
            Navigator.pushNamed(context, '/red');
          }, child: Text("red page")),
          ElevatedButton(onPressed: (){
            Navigator.pushNamed(context, '/green');
          }, child: Text("blue page")),
          ElevatedButton(onPressed: (){
            Navigator.pushNamed(context, '/blue');
          }, child: Text("green page")),
        ],
      ),
    );
  }
}

red_page.dart

import 'package:flutter/material.dart';

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Container(
        width: double.infinity,
        height: double.infinity,

        color: Colors.red,
      ),
    );
  }
}

green, blue도 비슷함

config 폴더
route_names.dart

import 'package:flutter_pagemove/screen/blue_page.dart';
import 'package:flutter_pagemove/screen/green_page.dart';
import 'package:flutter_pagemove/screen/red_page.dart';

class RouteNames {

  static String redPage = '/red';
  static const bluePage = '/blue';
  static const greenPage = '/green';

}

var nameMap = {
  RouteNames.redPage : (_) => ExRedPage(),
  RouteNames.bluePage : (_) => ExBluePage(),
  RouteNames.greenPage : (_) => ExGreenPage(),
};

main.dart

import 'package:flutter/material.dart';
import 'package:flutter_pagemove/colorPage.dart';
import 'package:flutter_pagemove/screen/blue_page.dart';
import 'package:flutter_pagemove/screen/green_page.dart';
import 'package:flutter_pagemove/screen/red_page.dart';

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

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      // 라우트 지정
      routes: {
        // map 사용시 {}
        // key 값은 String
        // value 값은 function
        '/red' : (context) {return ExRedPage();},
        '/blue' : (context) {return ExBluePage();},
        '/green' : (context) {return ExGreenPage();},
      },
      
      home: ExColorPage(),
    );
  }
}

profile
개발자

0개의 댓글