์์ง์ด๋ .gif ์ด๋ฏธ์ง๋ง๊ณ ์ ์ ์ธ .jpg ์ด๋ฏธ์ง๋ก ์์ง์ด๋ ๋ก๋ฉ ์ธ๋์ผ์ดํฐ๋ฅผ ๋ง๋ค์ด์ผํ์ต๋๋ค!
ํ์ฐธ์ ์ด๊ฒ์ ๊ฒ ์ฐพ์๋ดค์๋๋ฐ์.
ํ๋ฌํฐ์
AnimatedSwitcher
๋ฅผ ์ด์ฉํ๋ฉด ์ฝ๊ฒ ๋ง๋์ค ์ ์์ด์. ๋ ์ข์ ๋ฐฉ๋ฒ์ด ์๋ค๋ฉด ์๋ ค์ฃผ์ธ์ ใ ์ ๋ ์๊ณ ์ถ์ต๋๋ค.
๐๐ป ๊ณต์ flutter - AnimatedSwitcher ํ์ด์ง ๊ฐ๊ธฐ
https://api.flutter.dev/flutter/widgets/AnimatedSwitcher-class.html
โ indicator ์ฝ๋
class _ImageIndicatorState extends State<ImageIndicator>{
//์ด๋ฏธ์ง๋ฅผ ์ฌ๋ฌ๊ฐ ์ฐ๊ธฐ๋๋ฌธ์ ์นด์ดํธ๊ฐ ํ์ํฉ๋๋ค.
int _count = 0;
//๋ก๋ฉ ์ธ๋์ผ์ดํฐ์ ๋ค์ด๊ฐ ์ด๋ฏธ์ง ๋ฐฐ์ด์ด ํ์ํฉ๋๋ค.
var imgList = ["img1","img2","img3"];
//ํ์ด๋จธ๋ ํ์ํฉ๋๋ค. javascript ์ setTimeout, setInterval ์ ๋น์ทํ ๊ฐ๋
์
๋๋ค.
//dart:async ํจํค์ง์ ํฌํจ๋์ด์์ต๋๋ค.
Timer? timer;
@override
void initState() {
//0.5์ด๋ง๋ค ์นด์ดํธ๋ฅผ ์
์์ผ์ฃผ๋ ๊ฒ๋๋ค. ๋ง์ง๋ง ์ด๋ฏธ์ง๊ฐ ๋๋ฉด ์นด์ดํธ๋ฅผ 0์ผ๋ก ๋ฐ๊ฟ์ฃผ๊ณ ์
Timer.periodic(const Duration(milliseconds: 500), (Timer t){
final isLast = _count == imgList.length - 1;
setState(() => _count = isLast ? 0 : _count + 1);
});
super.initState();
}
@override
Widget build(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
mainAxisAlignment: MainAxisAlignment.center,
children: [
AnimatedSwitcher(duration: Duration(milliseconds: 50),
transitionBuilder: (Widget child, Animation<double> animation){
return FadeTransition(child: child, opacity: animation);
},
child: Container(
child: SizedBox(
width: 50.0,
height: 50.0,
child: Image.network(imgList[_count])),
key: ValueKey<int>(_count),
),
),
],
);
}
}
ํจ์๊ฐ ์ด๋ป๊ฒ ๋์๊ฐ๋์ง๋ ์์ ์ ์ด๋์์ต๋๋ค.
์๋ Container๋ ์ด๋ฏธ์ง ์ฌ์ด์ฆ๋ฅผ ์ก์์ฃผ๋๊ฑฐ๊ณ ์. ์นด์ดํธ๋ฅผ ์ฌ๊ธฐ์ ๋์ ํด์ ๋ณํ๋ ์นด์ดํธ์ ๋ฐ๋ผ์ ์ด๋ฏธ์ง๊ฐ ๋ณํ๊ฒ ํด์ค๋๋ค.
AnimatedSwitcher๋ฅผ ์ฌ์ฉํด์ ์ฌ์ง์ ์ ํด์ฃผ๊ณ FadeTransition ๊ณผ ๊ฐ์ด ์ด๋ป๊ฒ transitionํ ๊ฒ์ธ์ง ์ ํด์ฃผ๊ณ ๊ทธ ์์ ํ๋ผ๋ฏธํฐ๋ก ์ ์ฉ๋ child์ ์ ๋๋ฉ์ด์ ์ ๋ฃ์ด์ฃผ๋ฉด ๋ฉ๋๋ค. ์ฝ์ฃ ์?......
FadeTransition๋ง๊ณ Scale๋ ์๊ณ ๋ค์ํด์!
^^.....
'๊ฐ๋ฐ > Flutter' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ฌํฐ] Stateless vs Stateful ๊ฐ๋ (0) | 2023.05.07 |
---|---|
[ํ๋ฌํฐ/flutter] RxList ๋ substring์ ์ธ ์ ์๋ ๊ฒ์ธ๊ฐ!? ๐ค (0) | 2023.05.05 |
[ํ๋ฌํฐ] FutureBuilder ์ฌ์ฉํ๊ธฐ - ๋ก๋ฉ indicator ๋ฃ๊ธฐ (0) | 2022.11.25 |
[ํ๋ฌํฐ] ์๋๋ก์ด๋ ์คํ๋์ค ios ๋๋ฐ์ด์ค ์ธ์ ๋ชป ํ ๋ (0) | 2022.11.23 |
[ํ๋ฌํฐ] TextEditingController ๋ก input ๊ด๋ฆฌํ๊ธฐ (0) | 2022.11.08 |