[Dart] MaterialStateProPerty

봉구마·2023년 7월 31일
0

Flutter

목록 보기
6/6

앱 리뉴얼을 진행하며 새롭게 알게된 MaterialStateProPerty 인터페이스

TextButton, ElevatedButton, OutlinedButton 등 ButtonStyle를 활용할 수 있는 버튼 위젯에 사용된다.

공식문서 영상부터 예제까지 직접 수정해보면서 익혀보았다.

자주 쓰이는 메소드는 ,,,

1. /// 어떤 상태에도 적용되는 style
MaterialStateProPerty.all 

2. /// 상태에 대해 콜백을 받아 특정 상태로 변화할 때 보여주는 style이 다름
MaterialStateProPerty.resolveWith((state) {})

버튼에 상태를 지속적으로 체크해주기 위해서 빌드 함수에다가 스타일을 반환 받는 함수를 쓰는 예제를 많이 확인 했는데, 재빌드할 때마다 그 함수를 실행하기 때문에 불필요한 재빌드가 일어날 수밖에 없다는 점은 아쉽다 ..
(+ 10분 뒤 다시 생각해보았을 때 ,, 위젯 안에서 MaterialStateProPerty 정의해도 빌드 되는 건 마찬가지라 함수화를 하거나 안 하거나 같을 것 같다 ... 내가 이해한 게 맞는지)

UI 리팩토링을 진행하면서 공통 컴포넌트를 만들 때 유용하게 쓰일 것 같다.
공통 컴포넌트를 제작하기 위해서는 디자이너와 먼저 미리 규칙 같은 걸 정해야하지 않을까 싶긴 하지만 ..ㅎ

공식 문서가 중요하다는 것을 나날이 깨달아가는 중 ...

profile
flutter 햇병아리 개발자

0개의 댓글