반응형
질문
위젯에서 기본적인 터치 효과를 비활성화하는 방법은 무엇인가요? 때때로 이 효과는 원하지 않을 때가 있습니다. 예를 들어 다음 TextField의 경우:
답변
위의 @hunter의 제안에 따라, 내 테마에서 highlightColor
와 splashColor
를 모두 Colors.transparent
로 설정하면 리플이 제거된다는 것을 발견했습니다.
하지만 highlightColor
를 설정하는 것이 일부 부작용을 일으킬 수 있다는 우려가 있지만, 아직은 아무런 문제가 없는 것 같습니다.
편집: 원래 답변에는 많은 추천이 있었지만, 더 배우면서 제대로 된 방법이 아니라는 것을 깨달았습니다. 아래에서 여러 사람들이 지적한 대로, 더 좋은 해결책은 splashFactory
를 사용하는 것입니다. 예를 들어, 아래 코드는 스타일을 통해 직접 설정되는 것을 보여주며, 테마에서도 설정할 수 있습니다:
ElevatedButton(
onPressed: onPressed,
style: ElevatedButton.styleFrom(
splashFactory: NoSplash.splashFactory,
),
child: child,
);
반응형
댓글