카테고리 없음

Flutter : 다른 dart 파일 class 에서 만든 화면 가져오기

키깡 2021. 4. 24.
728x90

mail/login_page.dart

import 'package:flutter/material.dart';

class AuthPage extends StatelessWidget {
  final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
  @override
  Widget build(BuildContext context){

    final Size size = MediaQuery.of(context).size; // 핸드폰 화면 사이즈를 가져와준것
    final TextEditingController _emailController = TextEditingController();
    final TextEditingController _passwordController = TextEditingController();

    return Scaffold(
      body:Stack(
        alignment:Alignment.center,
        children: <Widget>[
          Container(color: Colors.white,),
          Column(
            crossAxisAlignment: CrossAxisAlignment.center,
            mainAxisAlignment: MainAxisAlignment.end,
            children:<Widget>[
              Container(width:200,height:200,color:Colors.black,),
              Stack(children: <Widget>[
                Padding(
                  padding: EdgeInsets.all(size.width*0.05),
                  child: Card(
                      shape:RoundedRectangleBorder(
                          borderRadius: BorderRadius.circular(10)
                      )
                      ,elevation:6,
                      child: Padding(
                        padding: const EdgeInsets.all(12.0),

                        child: Form(
                            key:_formKey,
                            child: Column(

                                children: <Widget>[
                                  TextFormField(controller: _emailController,
                                    decoration: InputDecoration(
                                      icon:Icon(Icons.account_circle),
                                      labelText:"E-mail",
                                    ),
                                    validator:(String value){
                                      if(value.isEmpty){
                                        return "E-mail을 바르게 입력해주세요!";
                                      }
                                      return null;
                                    },
                                  ),
                                  TextFormField(controller: _passwordController,
                                    decoration: InputDecoration(
                                        icon: Icon(Icons.vpn_key),
                                        labelText: "비밀번호"
                                    ),
                                    validator: (String value){
                                      if(value.isEmpty){
                                        return "올바른 비밀번호를 입력해주세요!";
                                      }
                                      return null;
                                    },),

                                  Positioned(left: size.width*0.15,
                                    right: size.width*0.15,
                                    bottom: 0,
                                    child: RaisedButton(padding: const EdgeInsets.all(2.0),
                                        child: Text("Login"),
                                        color:Colors.blue,
                                        shape: RoundedRectangleBorder(borderRadius:BorderRadius.circular(15)),
                                        onPressed: (){

                                        }),
                                  ),

                                  Text("Forgot Password?"),


                                ]
                            )
                        ),
                      )),
                ),
              ],
              ),
              Container(width:100,height:100),
              Text("아직 회원이 아니신가요? 그렇다면, 가입하세요!"),
              Container(height: size.height*0.05,)
            ],
          ),


        ],
      ),
    );
  }
}

main.dart

import 'package:flutter/material.dart';
import 'mail/login_page.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
      return MaterialApp(home: AuthPage());
  }
}

엄청 단순하게 불러오는 구조!

댓글