320x100
728x90
1. obs 변수를 만들어준다
var like = false.obs;
2. Obx 로 감싼 뒤, 위젯을 리턴해준다
Obx(() => CircleAvatar(
backgroundColor: Colors.white,
radius: 15,
child: Center(
child: IconButton(
...
),
),
),
),
3. 삼항 연산자를 사용해 조건에 알맞은 아이콘을 보여주도록 한다.
product.like.value ? Icon(Icons.favorite_rounded) : Icon(Icons.favorite_border),
4. 눌렀을 때, 이벤트 처리
onPressed: () {
product.like.toggle();
},
Obx(() => CircleAvatar(
backgroundColor: Colors.white,
radius: 15,
child: Center(
child: IconButton(
alignment:Alignment.center,
icon: product.like.value ? Icon(Icons.favorite_rounded) : Icon(Icons.favorite_border),
onPressed: () {
product.like.toggle();
},
iconSize: 18,
),
),
),
),
728x90
반응형
'Flutter' 카테고리의 다른 글
[Flutter/플러터] Riverpod를 통해 알아보는 플러터 아키텍처 - (1) Repository pattern (0) | 2022.09.27 |
---|---|
[Flutter/플러터] Freezed 플러그인 사용하기 - (1) (0) | 2022.09.27 |
[Flutter/플러터] Dart 반복문 쓰지 않고 리스트 합, 최댓값, 최솟값 구하기 - fold (1) | 2022.09.23 |
[Flutter/플러터] 플러터 상태관리 - Getx(GetBuilder, Reactive State Manager)(1) (0) | 2022.09.23 |
[Flutter/플러터] 키보드 overflowed 문제 해결하기(키보드 열림 무시) (0) | 2022.09.21 |