<< 소스 코드 - main.dart >>
import 'package:flutter/material.dart';
import 'login_app/login.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Login app',
theme: ThemeData(primarySwatch: Colors.grey),
home: LogIn(),
);
}
}
// class LogIn extends StatelessWidget{
// @override
// Widget build(BuildContext context){
// return Scaffold(
// appBar: AppBar(
// backgroundColor: Colors.blue,
// title: const Text(
// 'Sign In',
// style: TextStyle(color: Colors.white),
// ),
// centerTitle: true,
// elevation: 0.2,
// ),
// body: Padding(
// padding: const EdgeInsets.all(16.0),
// child: Column(
// mainAxisAlignment: MainAxisAlignment.center,
// children: <Widget>[
// ButtonTheme(
// height: 50.0,
// shape: const RoundedRectangleBorder(
// borderRadius: BorderRadius.all(
// Radius.circular(4.0),
// ),
// ),
// child: ElevatedButton(
// style: ElevatedButton.styleFrom(
// backgroundColor: Colors.white,
// ),
// onPressed: () {
//
// },
// child: Row(
// mainAxisAlignment: MainAxisAlignment.spaceEvenly,
// children: <Widget>[
// Image.asset('image/glogo.png'),
// const Text(
// 'Login with Google',
// style: TextStyle(
// color: Colors.black87, fontSize: 15.0
// ),
// ),
// Opacity(
// opacity: 0.0,
// child: Image.asset('image/glogo.png'),
// ),
// ],
// ),
// ),
// ),
// ],
// ),
// ),
// );
// }
// }
//
//
//
<< 소스코드 - my_button.dart >>
import 'package:flutter/material.dart';
class MyButton extends StatelessWidget {
MyButton({required this.image, required this.text, required this.color, required this.radius, required this.onPressed});
final Widget image;
final Widget text;
final Color color;
final double radius;
final VoidCallback onPressed;
@override
Widget build(BuildContext context) {
return ButtonTheme(
height: 50.0,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(
Radius.circular(radius),
),
),
child: ElevatedButton(
style: ElevatedButton.styleFrom(
backgroundColor: color,
),
onPressed: onPressed,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
image,
text,
Opacity(
opacity: 0.0,
child: Image.asset('image/glogo.png'),
),
],
),
),
);
}
}
<< 소스코드 - login.dart >>
import 'package:example_pjt/my_button/my_button.dart';
import 'package:flutter/material.dart';
class LogIn extends StatelessWidget {
const LogIn({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.blue,
title: const Text(
'Sign In',
style: TextStyle(
color: Colors.white,
),
),
centerTitle: true,
elevation: 2.0,
),
body: _buildButton(),
);
}
Widget _buildButton() {
return Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ButtonTheme(
height: 50.0,
child: ElevatedButton(
onPressed: (){},
style: ElevatedButton.styleFrom(backgroundColor: Colors.white),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Image.asset('image/glogo.png'),
const Text(
'Login with Google',
style: TextStyle(color: Colors.black87, fontSize: 15.0),
),
Opacity(
opacity: 0.0,
child: Image.asset('image/glogo.png'),
),
],
),
),
),
const SizedBox(
height: 10.0,
),
MyButton(
image: Image.asset('image/glogo.png'),
text: const Text(
'Login with Google',
style: TextStyle(color: Colors.black87, fontSize: 15.0),
),
color: Colors.white,
radius: 4.0,
onPressed: (){}
),
const SizedBox(
height: 10.0,
),
MyButton(
image: Image.asset('image/flogo.png'),
text: const Text(
'Login with Facebook',
style: TextStyle(color: Colors.white, fontSize: 15.0),
),
color: Colors.deepPurpleAccent,
radius: 4.0,
onPressed: (){}
),
const SizedBox(
height: 10.0,
),
MyButton(
image: const Icon(Icons.email, color: Colors.white,),
text: const Text(
'Login with Email',
style: TextStyle(color: Colors.white, fontSize: 15.0),
),
color: Colors.green,
radius: 4.0,
onPressed: (){}
),
],
),
);
}
}
<< 출력 화면 >>
'Flutter (with 코딩셰프)' 카테고리의 다른 글
[2024.02.07] 플러터(flutter) 조금 매운맛 강좌 08 | Future, async, await 이해하 (0) | 2024.02.08 |
---|---|
[2024.01.09] 플러터(flutter) 조금 매운맛 강좌 05 | 로그인과 주사위게임 (0) | 2024.01.09 |
[2023.12.20] 플러터(flutter) 조금 매운맛 강좌 04 | 로그인과 주사위게임 (0) | 2023.12.20 |
[2023.12.12] 플러터(flutter) 조금 매운맛 강좌 03 | 로그인과 주사위게임 (0) | 2023.12.12 |
[2023.12.08] 플러터(flutter) 조금 매운맛 강좌 02 | Sateful Widget #2 (0) | 2023.12.08 |