Flutter_17. Switch Function, Image, SizedBox, Column(Figma)
์ง๋ ํฌ์คํ ์ ์ด์ด ์ค๋์ Function ๋ถ๋ถ์ ๊ตฌํํด๋ณด๋๋ก ํ๊ฒ ๋ค.
์ฝ๋๋ฅผ ๋ค์ ์คํํด๋ณด๊ณ , ํด์ผํ ์ฒดํฌ ํญ๋ชฉ์ ํ์ธํ์ :)
2023.05.08 - [๊ฐ๋ฐํ๊ธฐ] - Flutter_16. Static, Message, Switch, Slider
๐ฟ ์ฒดํฌ ํญ๋ชฉโ Detail Page์์๋ง Play ํ๋ฉด์ ์ง์ ๊ฐ๋ฅ, Detail Page์ ์ถ๋ ฅ์ค์ธ ์ด๋ฏธ์ง๋ฅผ Play ํ๋ฉด์ ์ถ๋ ฅํ์ฌ ์ฌ์ฉ
1) SwitchImageChange : ์ด๋ฏธ์ง ๋ณ๊ฒฝ(์ํ/์ํฐ์คํธ)
2) SwitchImageSize : ์ด๋ฏธ์ง ์ฌ์ด์ฆ ๋ณ๊ฒฝ(์๊ฒ/ํฌ๊ฒ) & ์ค์์น Label ๋ณ๊ฒฝ(Size-Max/Size-Min)
3) SwitchImageShow : ์ด๋ฏธ์ง ์ถ๋ ฅ ์ฌ๋ถ ์ค์ (๋ ธ์ถ/๋น๋ ธ์ถ), ๋น๋ ธ์ถ์ผ ๊ฒฝ์ฐ ํด๋น ์์ญ Color ํ์
4) SliderSize : ์ด๋ฏธ์ง ์ฌ์ด์ฆ๋ฅผ 6๋จ๊ณ(0~5) ์ต์ ์ผ๋ก ์ ํํ์ฌ ์กฐ์
5) SliderRotation : ์ด๋ฏธ์ง ๊ฐ๋๋ฅผ 0~360๋ ๋ด์์ ์์ ๋กญ๊ฒ ์กฐ์
Figma Case Check, Field
1) Figma - ์ผ์ด์ค๋ณ ํ๋ฉด ๋ฉ๋ชจ
โ Switch Function โ
1. _playImageChange() : ์ด๋ฏธ์ง ๋ณ๊ฒฝ(์ํ/์ํฐ์คํธ)
2. _playImageSize() : ์ด๋ฏธ์ง ์ฌ์ด์ฆ ๋ณ๊ฒฝ(์๊ฒ/ํฌ๊ฒ) & ์ค์์น Label ๋ณ๊ฒฝ(Size-Max/Size-Min)
3. _playImageShow() : ์ด๋ฏธ์ง ์ถ๋ ฅ ์ฌ๋ถ ์ค์ (๋ ธ์ถ/๋น๋ ธ์ถ), ๋น๋ ธ์ถ์ผ ๊ฒฝ์ฐ ํด๋น ์์ญ Color ํ์
4. _showAlertTurnOff(BuildContext context) : 3๋ฒ์ ๊ฒฝ์ฐ Alert ์ถ๋ ฅ ํ ์ด๋ฏธ์ง ๋น๋ ธ์ถ ์ฒ๋ฆฌ
2) ์ด๋ฏธ์ง ๊ฒฝ๋ก ๋ณ์ ์ฒ๋ฆฌ
ASIS : static๋ณ์๋ฅผ ๋ฐ๋ก ์ด๋ฏธ์ง ์์ญ์ ์ถ๋ ฅ
TOBE : Field์ ๋ณ์ ๋ง๋ค๊ณ , static ๋ณ์๊ฐ ๋ด์์ ์ฌ์ฉ
3) ์ฌ์ด์ฆ ๋ณ์ ์ฒ๋ฆฌ
4) ์ด๋ฏธ์ง ์ถ๋ ฅ ์์ญ Column > SizedBox๋ก ๊ณ ์
Switch Function
1) ์ด๋ฏธ์ง ๋ ธ์ถ(๋ ธ์ถ ↔ ๋น๋ ธ์ถ)
์ด๋ฏธ์ง ๋ ธ์ถ ์ฌ๋ถ๊ฐ ์ถ๋ ฅ๋๋ ์ด๋ฏธ์ง(์ํ/์ํฐ์คํธ) ์ต์ ์ ์ํฅ์ ์ค์ผ๋ก, ์ด๋ฏธ์ง ๋ ธ์ถ ON/OFF ๋จผ์ ์ฒดํนํ๋ค.
Switch Image{On}์ผ ๊ฒฝ์ฐ
- Switch Artist ์ ํ๊ฐ์ ๋ฐ๋ผ ์ํ ๋๋ ์ํฐ์คํธ์ ์ด๋ฏธ์ง ์ถ๋ ฅ
Switch Image{Off}์ผ ๊ฒฝ์ฐ
- ํด๋น ์์ญ Color ์ถ๋ ฅ
// ---Func1. ์ด๋ฏธ์ง ๋
ธ์ถ์ฌ๋ถ
_playImageShow(){
if(_switchImageShow){
if(_switchImageChange){
_imagePath = 'images/unsplashImg-artist.png';
}else{
_imagePath = Message.imagePath;
}
} else {
_imagePath = 'images/noImage.png';
}
}
2) ์ด๋ฏธ์ง ๋ณ๊ฒฝ(์ํ ↔ ์ํฐ์คํธ)
์ด๋ฏธ์ง ๋ ธ์ถ์ด ON์ผ ๊ฒฝ์ฐ์๋ง, ํด๋น ์ถ๋ ฅ์ด ๋ณ๊ฒฝ๋๋ค.
Switch Artist{On}์ผ ๊ฒฝ์ฐ
- ์ํฐ์คํธ์ ์ด๋ฏธ์ง ์ถ๋ ฅ
Switch Artist{Off}์ผ ๊ฒฝ์ฐ
- static์ ๋ด์๋ ์ํ ์ด๋ฏธ์ง ์ถ๋ ฅ
// ---Func2. ์ด๋ฏธ์ง ๋ณ๊ฒฝ(์ํ/์ํฐ์คํธ)
_playImageChange(){
if(_switchImageChange){
_imagePath = 'images/unsplashImg-artist.png';
}else{
_imagePath = Message.imagePath;
}
}
3) ์ด๋ฏธ์ง ์ฌ์ด์ฆ(Max ↔ Min)
์ด๋ฏธ์ง ์ฌ์ด์ฆ๋ Switch On/Off์ ๋ฐ๋ผ ์ค์์น ๋ ์ด๋ธ(text)๋ ํจ๊ป ๋ณ๊ฒฝํด์ค๋ค.
Switch Size{On}์ผ ๊ฒฝ์ฐ
- ์ด๋ฏธ์ง ์ฌ์ด์ฆ ํค์ฐ๊ธฐ 350 x 350
- ์ค์์น๋ช "Size-Max"๋ก ๋ณ๊ฒฝ
Switch Size{Off}์ผ ๊ฒฝ์ฐ
- ์ด๋ฏธ์ง ์ฌ์ด์ฆ ์ค์ด๊ธฐ 100 x 100
- ์ค์์น๋ช "Size-Min"์ผ๋ก ๋ณ๊ฒฝ
// ---Func3. ์ด๋ฏธ์ง ์ฌ์ด์ฆ์ switch ์ด๋ฆ ๋ณ๊ฒฝ(Min/Max)
_playImageSize(){
if(_switchImageSize){
_imageWidth = 100;
_imageHeight = 100;
_switchImageSizeLabel = 'Size-Max';
}else{
_imageWidth = 350;
_imageHeight = 350;
_switchImageSizeLabel = 'Size-Min';
}
}
4) ์ ์ฅํ๊ณ ํ๋ฉด ํ์ธ
โ Switch Function โโ _playImageChange() : ์ด๋ฏธ์ง ๋ณ๊ฒฝ(์ํ/์ํฐ์คํธ)โ _playImageSize() : ์ด๋ฏธ์ง ์ฌ์ด์ฆ ๋ณ๊ฒฝ(์๊ฒ/ํฌ๊ฒ) & ์ค์์น Label ๋ณ๊ฒฝ(Size-Max/Size-Min)โ _playImageShow() : ์ด๋ฏธ์ง ์ถ๋ ฅ ์ฌ๋ถ ์ค์ (๋ ธ์ถ/๋น๋ ธ์ถ), ๋น๋ ธ์ถ์ผ ๊ฒฝ์ฐ ํด๋น ์์ญ Color ํ์
4. _showAlertTurnOff(BuildContext context) : 3๋ฒ์ ๊ฒฝ์ฐ Alert ์ถ๋ ฅ ํ ์ด๋ฏธ์ง ๋น๋ ธ์ถ ์ฒ๋ฆฌ
AlertDialog์ ๋ค์ ํฌ์คํ ...