① 배운 것
void didChangeDependencies() {
precacheImage(
CachedNetworkImageProvider(widget.img),
context,
);
super.didChangeDependencies();
}
///실제 사용
Image(image: CachedNetworkImageProvider(widget.img),)
이 다섯 가지 속성은 모두 Flutter의 InkWell 위젯이나 InkResponse 위젯과 같은 Material 디자인 요소에서 사용되는 색상 속성들로, 사용자 상호작용에 따른 시각적 피드백을 제공합니다. 각 속성이 다른 상호작용 상태를 나타내며, 그 차이점은 다음과 같습니다:
super.focusColor
InkWell(
focusColor: Colors.blue,
onTap: () {},
child: Text('Focus me!'),
);
super.hoverColor
InkWell(
hoverColor: Colors.blue,
onTap: () {},
child: Text('Hover over me!'),
);
super.highlightColor
InkWell(
highlightColor: Colors.blue,
onTap: () {},
child: Text('Highlight me!'),
);
super.overlayColor
MaterialStateProperty로 설정할 수 있어 상태별 색상 정의가 가능합니다.InkWell(
overlayColor: MaterialStateProperty.resolveWith((states) {
if (states.contains(MaterialState.pressed)) {
return Colors.blue;
}
return null;
}),
onTap: () {},
child: Text('Overlay color example'),
);
super.splashColor
InkWell(
splashColor: Colors.blue,
onTap: () {},
child: Text('Splash me!'),
);
요약하자면:
focusColor: 포커스가 맞춰졌을 때의 색상.hoverColor: 마우스 커서가 위에 있을 때의 색상.highlightColor: 길게 누르거나 터치가 유지될 때의 색상.overlayColor: 터치나 클릭과 같은 상호작용 시 오버레이 색상.splashColor: 터치 시 퍼져나가는 물결 효과의 색상.이 각각의 속성들은 특정 상호작용 상태에서 위젯을 시각적으로 구분하는 데 도움을 줍니다.
보통 많이 사용되는, 눌렀을때 색상 바뀌게 하는 코드는 아래와 같음
InkWell(
overlayColor: MaterialStateProperty.all(overlayColor),
splashFactory: NoSplash.splashFactory,
....);
② 회고 (restropective)
좋은 동료가 있다는 것은 좋다.
왜냐면 혼자 고민을 하는 것보다 훨씬 좋은 해결책을 찾을 수 있기 때문이다.
동료의 코드가 되게 쉽게 쉽게 읽히고 수정가능한 코드이다. 나도 그런 코드를 좋은 코드라 생각하기 때문에 동료의 코드를 참고하기도하고,내 코드를 쓰면서 동료가 읽기 쉬울지, 내 코드가 전체적인 프로젝트에서 튀지는 않는지 항상 고민하면서 코드를 작성하고있다.
③ 개선을 위한 방법