[플러터] 위젯에 클릭 이벤트 부여하기 (Inkwell, GestureDetector)

2021. 7. 31. 01:09·Flutter/Flutter Widget Basic

플러터의 일반적인 위젯들에는 onClick, onPressed 속성이 없다.

InkWell 혹은 GestureDetector으로 일반 위젯을 감싸주면 클릭 이벤트들을 부여할 수 있다.

 

InkWell

 InkWell(
      splashColor: 
      hoverColor: 
      highlightColor: 
      
      onTap: () {
      
      }
      child : Container(...)
      ...

 

InkWell은 onTap, onTapDown, onHover의 기본적인 클릭 이벤트들이 내장되어있다.

또한, 위젯을 클릭 했을때 아래와 같은 클릭 애니메이션이 기본으로 발생한다.

만약 애니메이션이 마음에 들지 않는다면 Colors.transparent을 정의해주면 된다.

간단하게 클릭 기능을 만들고 싶은 위젯을 InkWell로 감싸주면된다.

focusNode를 속성으로 가지고 있어 클릭시 focusNode에 foucs를 자동으로 부여해줄 수 있다.

클릭된 상태

 

GestureDetector

 GestureDetector(
      onLongPress: () {
        
      },
      onTapDown: (details) {
     
      },
      child : Container(...)
    );

해당 위젯도 마찬가지로 클릭 기능을 만들고 싶은 위젯을 감싸주면 된다.

InkWell과는 다르게 애니메이션이 존재하지 않는다.

위의 예제에서의 details와 같이 클릭된 좌표 값을 받아올 수 있는 속성이 존재한다.

또한, 터치와 관련된 모든 이벤트들을 다룰 수 있다.

 

터치 이벤트 선택지가 엄청나게 많다

저작자표시 비영리 변경금지 (새창열림)

'Flutter > Flutter Widget Basic' 카테고리의 다른 글

[플러터] TabBar 만들기  (0) 2021.08.28
[플러터] Toast 메시지 (Snack bar) 생성하기  (0) 2021.01.07
[플러터] onClick 속성이 가능한 Text 위젯  (0) 2020.11.21
[플러터] bottom Navigation을 구현하는 3가지 방법  (0) 2020.09.28
[플러터] Inkwell의 이펙트 제거  (0) 2020.09.24
'Flutter/Flutter Widget Basic' 카테고리의 다른 글
  • [플러터] TabBar 만들기
  • [플러터] Toast 메시지 (Snack bar) 생성하기
  • [플러터] onClick 속성이 가능한 Text 위젯
  • [플러터] bottom Navigation을 구현하는 3가지 방법
박유상의 개발블로그
박유상의 개발블로그
개발블로그
  • 박유상의 개발블로그
    박유상의 개발블로그
    박유상의 개발블로그
  • 전체
    오늘
    어제
    • 전체 (134)
      • Who am I (10)
        • Portfolio (4)
        • Reminiscence (5)
        • Oversea (1)
        • SiliconValley (0)
      • React (36)
        • React Basic (15)
        • React Tech (5)
        • JavaScript (7)
        • TypeScript (3)
        • CSS&HTML (3)
        • Firebase (3)
      • NodeJS (1)
        • NodeJS Basic (1)
      • Flutter (55)
        • Flutter Widget Design (5)
        • Flutter Widget Basic (8)
        • Flutter Tech (18)
        • Flutter Issue (7)
        • Flutter Web (6)
        • About Flutter (2)
        • Firebase (1)
        • Dev Env (1)
        • Dart (7)
      • Programming (31)
        • Web (1)
        • General (0)
        • Algorithm (25)
        • Python (1)
        • VS Code (2)
      • Django (0)
  • 블로그 메뉴

    • Who I AM
    • React
    • NodeJS
    • Flutter
    • Programming
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    useState
    CSS
    탐욕법
    웹
    Redux
    플러터
    플러터 웹
    HTML
    react
    TypeScript
    map
    자바스크립트
    DART
    useRef
    flutter web
    프로그래머스
    파이썬
    Flutter
    JSON
    Python
    링고리
    Lingory
    알고리즘
    포트폴리오
    Firebase
    useTranslation
    github
    DP
    리액트
    JavaScript
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
박유상의 개발블로그
[플러터] 위젯에 클릭 이벤트 부여하기 (Inkwell, GestureDetector)
상단으로

티스토리툴바