์ ์ฒด ๊ธ (154) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ Photo Slide Show App Photo Slide Show APP PageView ์ด์ฉํด ์ฌ์ง ๋ณด์ฌ์ฃผ๊ธฐ ์์งฑ ์ฌ์ง์ผ๋ฃจ,, ์ฌ์ง ์ด๋ฆ์ด son1.png, son2.png ๋ฑ์ผ๋ก ๋์ ์ซ์๋ง ๋ฐ๋ณต๋จ -> functional programming ํด์ฃผ๊ธฐ fit: BoxFit.cover ์ด์ฉํด ์ฌ์ง ํ๋ํด ์ ์ฒดํ๋ฉด์ผ๋ก ๋ณด์ฌ์ง๊ฒ ํ๊ธฐ Timer ํ์ด๋จธ ๊ฑธ์ด์ฃผ๊ธฐ timer = Timer.periodic(Duration(seconds: _), (timer) {} ์ด๊ธฐ ํ์ด์ง ๊ฐ์ 0 currentPage์ nextPage ์ค์ ํด์คฌ๊ณ ๋ค์ ํ์ด์ง๊ฐ์ด ์ ์์์์๋ 3๋ณด๋ค ์ปค์ง ๊ฒฝ์ฐ ๋ค์ ์ด๊ธฐ ํ์ด์ง๋ก ๋์์ค๊ฒ ํ๋ค (์ ์์์์๋ ์ฌ์ง์ ์ด 4์ฅ ๋ฃ์ด์คฌ๊ธฐ ๋๋ฌธ) ํ์ด์ง์ ์ ๋๋ฉ์ด์ ํจ๊ณผ๋ฅผ ์ฃผ์๋๋ฐ, (animateToPage) curve ๊ฐ์ ์กฐ.. StatefulWidget Widget ์ด๋ก ์์ ฏ์ ๋ชจ๋ ๋ถ๋ณ์ ๋ฒ์น ๊ฐ์ง ํ์ง๋ง ์์ ฏ์ ๊ฐ์ ๋ณ๊ฒฝํด์ผ ํ ๋๊ฐ ์์ ๋ณ๊ฒฝ์ด ํ์ํ๋ฉด ๊ธฐ์กด ์์ ฏ ์ญ์ ํ๊ณ ์์ ์๋ก์ด ์์ ฏ์ผ๋ก ๋์ฒด Stateless: ์ํ ์๊ณ , ๋ณํ ์๋ ์์ ฏ ํ ๋ฒ๋ง ๋น๋ ํ๋ฒ๋ง ๊ทธ๋ฆฌ๊ณ ๋ค์ ๊ทธ๋ฆฌ์ง ์๋๋ค๋ ์๋ฏธ -> Life Cycle ์๊ณ ๊ด๋ฆฌ ์ฉ์ด Stateful: ์ํ ์๊ณ , ์ก์ ๋ณํ ์๋ ์์ ฏ ์ํ ๋ณ๊ฒฝ๋จ์ ๋ฐ๋ผ ๋น๋ ์ฌ๋ฌ๋ฒ StatefulWidget Life Cycle Constructor๋ก ์์ฑ๋๊ณ ์์ฑ ๋์๋ง์ build ํจ์ ์คํ ์ด์ Container ์์ ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ณ๊ฒฝ์ด ํ์ํ๋ฉด ์๋ก์ด ์์ ฏ ๋ง๋ค์ด๋ฒ๋ฆผ ํ๋์ StatefulWidget์ ๋ผ์ดํ ์ฌ์ดํด๋์ ๋จ ํ๋ฒ๋ง build ํจ์ ์คํ createState() mounted == tr.. webview 4.0.2 ver. import 'package:flutter/material.dart'; import 'package:webview_flutter/webview_flutter.dart'; final homeUrl = Uri.parse("https://damio.tistory.com/"); class HomeScreen extends StatelessWidget { WebViewController controller = WebViewController() ..setJavaScriptMode(JavaScriptMode.unrestricted) ..loadRequest(homeUrl); HomeScreen({super.key}); @override Widget build(BuildContext context) { return .. webview, javascriptMode, controller ์ด๋จธ ๋ ์ ๊ธฐํด์.. ์๋ฐ์คํฌ๋ฆฝํธ ๋ชจ๋ ํ์ฉ์ผ๋ก ์ ํฌ๋ธ ๋ฑ ๋งํฌ๋ ์๋ฌ์์ด ๋ธ ์ฑ๋ฐ ์ค์ ๋ ํด์คฌ์ด์ฉ~~ Controller: ์์ ฏ๋ค์ ํ๋ก๊ทธ๋๋ฐ์ ์ผ๋ก ์ ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ ๊ฒ ํ ์์ด์ฝ ๋ง๋ค์ด์ ๋์๊ฐ ์ ์๊ฒ ํ๋ค ๋ ์ ๊ธฐํด~~ Row, Column ์ค์ต Row, Column ์์ ์์ฌ๋ก ํ์ฉํ๊ธฐ ์ค์ต..! ๋ ์ฌ๋ฐ๋ค.......โบ๏ธ mainAxisSize, Expanded, Flexible mainAxisSize: ์ฃผ์ถ ํฌ๊ธฐ import 'package:flutter/material.dart'; class HomeScreen extends StatelessWidget { const HomeScreen({super.key}); @override Widget build(BuildContext context) { return Scaffold( body: SafeArea( bottom: false, child: Container( color: Colors.black, child: Column( mainAxisAlignment: MainAxisAlignment.start, // CrossAxisAlignment: ๋ฐ๋์ถ ์ ๋ ฌ crossAxisAlignment: CrossAxisAlignment.st.. Widget Tree, MainAxisAlignment, CrossAxisAlignment Widget Tree Widget๋ค์ ๋ถ๋ชจ, ์์ ๊ด๊ณ MainAxisAlignment import 'package:flutter/material.dart'; class HomeScreen extends StatelessWidget { const HomeScreen({super.key}); @override Widget build(BuildContext context) { return Scaffold( body: SafeArea( bottom: false, child: Container( color: Colors.black, child: Column( mainAxisAlignment: MainAxisAlignment.end, children: [ Container( color: Colors.red, wi.. Flutter Hello World,,,! ๋๊ทผ๋๊ทผ ,, ๋๋ ์ ๋๋ก ๋ ํ๋ฌํฐ ๋ง๋ณด๊ธฐ ์์! ๋ช ๋ ์ ์ ํ๋ฌํฐ๋ก ํด์ฆ์ฑ ํ์ ๋๋ ์๋ฌด ๊ฒ๋ ๋ชจ๋ฅด๋ฉด์ ๋งจ ๋ ์ ํค๋ฉ ๋๋์ด์๋๋ฐ ์ด๋ฒ์ ์์์ด ์กฐ์~~ PREV 1 ยทยทยท 3 4 5 6 7 8 9 ยทยทยท 20 NEXT