본문 바로가기
Flutter/Flutter FAQ

Flutter 플러터에서 기본 위젯 스플래시 효과를 비활성화하는 방법은 무엇인가요?, How to disable default Widget splash effect in Flutter?

by 베타코드 2023. 10. 3.
반응형

질문


위젯에서 기본적인 터치 효과를 비활성화하는 방법은 무엇인가요? 때때로 이 효과는 원하지 않을 때가 있습니다. 예를 들어 다음 TextField의 경우:


답변


위의 @hunter의 제안에 따라, 내 테마에서 highlightColorsplashColor를 모두 Colors.transparent로 설정하면 리플이 제거된다는 것을 발견했습니다.

하지만 highlightColor를 설정하는 것이 일부 부작용을 일으킬 수 있다는 우려가 있지만, 아직은 아무런 문제가 없는 것 같습니다.

편집: 원래 답변에는 많은 추천이 있었지만, 더 배우면서 제대로 된 방법이 아니라는 것을 깨달았습니다. 아래에서 여러 사람들이 지적한 대로, 더 좋은 해결책은 splashFactory를 사용하는 것입니다. 예를 들어, 아래 코드는 스타일을 통해 직접 설정되는 것을 보여주며, 테마에서도 설정할 수 있습니다:

ElevatedButton(
  onPressed: onPressed,
  style: ElevatedButton.styleFrom(
    splashFactory: NoSplash.splashFactory,
  ),
  child: child,
);
반응형

댓글