Clickable#
child 를 감싸 인터랙티브하게 만드는 인프라 프리미티브입니다 — 포인터 커서, 포커스 링, press 피드백 스케일, 키보드 활성화(Enter/Space)를 직접 소유합니다.
Button 같은 상위 컴포넌트가 이 위에 쌓입니다. 직접 쓸 일은 드물지만, 커스텀 클릭 영역을 만들 때 raw GestureDetector
대신 사용하면 양 플랫폼 동작이 통일됩니다.
Live Preview#
Web
클릭 가능한 영역
Flutter
Loading Flutter...
class ClickableDefaultExample extends StatelessComponent {
const ClickableDefaultExample({super.key});
@override
Component build(BuildContext context) {
return Clickable(
onPressed: () {},
child: Card(child: Text('클릭 가능한 영역').bodyMedium),
);
}
}
class ClickableDefaultExample extends StatelessWidget {
const ClickableDefaultExample({super.key});
@override
Widget build(BuildContext context) {
return Clickable(
onPressed: () {},
child: Card(child: Text('클릭 가능한 영역').bodyMedium),
);
}
}
사용법#
Clickable(
onPressed: () {},
child: Card(child: Text('클릭 가능한 영역').bodyMedium),
)
Props#
| 파라미터 | 타입 | 기본값 | 설명 |
|---|---|---|---|
child |
Widget / Component |
required | 인터랙티브하게 만들 콘텐츠 |
onPressed |
void Function()? |
null |
기본 탭/클릭 핸들러 |
onDoubleTap / onLongPress |
void Function()? |
null |
더블탭 / 롱프레스 |
onHover / onFocus |
void Function(bool)? |
null |
hover / focus 상태 변화 콜백 |
enabled |
bool |
true |
비활성화 시 인터랙션 차단 |
focusOutline |
bool |
true |
포커스 시 링 표시 |
clickableStyle |
CoreClickableStyle? |
null |
커서 / 피드백 chrome 단일 진입점 |
Flutter 전용 인프라(
focusNode·statesController·mouseCursor)는 framework idiom 으로 노출됩니다 — Web 은 브라우저 native focus/cursor 로 동일 capability 를 제공합니다.