๊ฐœ๋ฐœํ•˜๊ธฐ/Flutter Start

Flutter_17. Switch Function, Image, SizedBox, Column(Figma)

uraon 2023. 5. 9. 20:00
728x90
๋ฐ˜์‘ํ˜•

์ง€๋‚œ ํฌ์ŠคํŒ…์— ์ด์–ด ์˜ค๋Š˜์€ 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์€ ๋‹ค์Œ ํฌ์ŠคํŒ…... 

 

 

๋ฐ˜์‘ํ˜•

 

 

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•