Flutter
[Flutter] 29. 로그인 화면 만들어보기
Song hyun
2024. 11. 7. 11:22
728x90
반응형
[Flutter] 29. 로그인 화면 만들어보기
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
MyApp({super.key});
// TextEditingController로 TextField의 controller에 넣을 객체를 선언
final TextEditingController _emailController = TextEditingController();
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
appBar: AppBar(
title: Text('로그인'),
),
body: Center(
child: Padding(
padding: const EdgeInsets.all(30.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Padding(
padding: EdgeInsets.symmetric(vertical: 30),
child: Image.asset(
'assets/images/c.png',
width: 100,
height: 100
),
),
TextField(
decoration: InputDecoration(
filled: true,
fillColor: Color(0xffFEDDBD),
labelText: '이메일',
hintText: '이메일',
labelStyle: TextStyle(color: Colors.brown),
hintStyle: TextStyle(color: Colors.brown),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(10.0)),
borderSide: BorderSide(width: 1, color: Colors.red),
),
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(width:1.5, color: Colors.brown),
),
prefixIcon: Icon(Icons.email_outlined),
),
keyboardType: TextInputType.emailAddress,
textInputAction: TextInputAction.search,
obscureText: false,
// TextEditingController 객체를 controller에 설정
controller: _emailController,
),
Padding(
padding: EdgeInsets.symmetric(vertical: 10.0),
child: TextField(
decoration: InputDecoration(
filled: true,
fillColor: Color(0xffFEDDBD),
labelText: '비밀번호',
hintText: '비밀번호',
labelStyle: TextStyle(color: Colors.brown),
hintStyle: TextStyle(color: Colors.brown),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(10.0)),
borderSide: BorderSide(width: 1, color: Colors.red),
),
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(width:1.5, color: Colors.brown),
),
prefixIcon: Icon(Icons.lock_outlined),
),
keyboardType: TextInputType.emailAddress,
textInputAction: TextInputAction.search,
obscureText: false,
// TextEditingController 객체를 controller에 설정
controller: _emailController,
),
),
const SizedBox(height: 20),
Padding(
padding: EdgeInsets.symmetric(vertical: 10),
child: ElevatedButton(
style: ElevatedButton.styleFrom(
backgroundColor: Colors.brown
),
onPressed: () {
// TextEditingController 객체의 text 속성으로 TextField의 입력된
// 문자열을 가져올 수 있음
print(_emailController.text);
},
child: Text('로그인', style: TextStyle(color: Colors.white)),
),
),
Padding(
padding: EdgeInsets.symmetric(vertical: 10),
child: Text('비밀번호를 잊으셨나요?',style: TextStyle(color: Colors.brown)
),
),
Padding(
padding: EdgeInsets.symmetric(vertical: 10),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text('계정이 없으신가요?'),
Text(
'회원 가입',
style: TextStyle(color: Colors.brown, fontWeight: FontWeight.bold),),
]
),
),
Padding(
padding: EdgeInsets.symmetric(vertical: 20),
child: Container( height:1.5,
width:500.0,
color:Colors.grey,),
),
ElevatedButton(
style: ElevatedButton.styleFrom(
backgroundColor: Color(0xffFEDDBD)
),
onPressed: () {
// TextEditingController 객체의 text 속성으로 TextField의 입력된
// 문자열을 가져올 수 있음
print(_emailController.text);
},
child: Text('Google로 로그인', style: TextStyle(color: Colors.brown)),
),
],
),
),
),
),
);
}
}
728x90
반응형