๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€

(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,,,! ๋‘๊ทผ๋‘๊ทผ ,, ๋“œ๋ŽŒ ์ œ๋Œ€๋กœ ๋œ ํ”Œ๋Ÿฌํ„ฐ ๋ง›๋ณด๊ธฐ ์‹œ์ž‘! ๋ช‡ ๋…„ ์ „์— ํ”Œ๋Ÿฌํ„ฐ๋กœ ํ€ด์ฆˆ์•ฑ ํ–ˆ์„ ๋•Œ๋Š” ์•„๋ฌด ๊ฒƒ๋„ ๋ชจ๋ฅด๋ฉด์„œ ๋งจ ๋•…์— ํ—ค๋”ฉ ๋А๋‚Œ์ด์—ˆ๋Š”๋ฐ ์ด๋ฒˆ์—” ์‹œ์ž‘์ด ์กฐ์™€~~

Tiny Star