inblog logo
|
stupefyee
    플러터

    InkWell, GestureDetector

    Stupefyee's avatar
    Stupefyee
    Dec 30, 2024
    InkWell, GestureDetector
    Contents
    1. InkWell2. GestureDetector3. 주요 차이점
    💡
    위젯에 클릭이벤트 등의 이벤트를 삽입 가능하게 해줌

    1. InkWell

    1. 역할

    • 터치 효과(리플 애니메이션)를 제공하는 위젯.

    2. 주요 속성

    • onTap: 클릭 이벤트 처리.
    • onLongPress: 길게 누르기 이벤트 처리.
    • borderRadius: 효과 영역의 모서리 반경 설정.

    3. 특징

    • 머티리얼 디자인 리플 효과 포함.
    • 머티리얼 디자인 테마를 상속받아 스타일 자동 적용.

    4. 사용 예

    • 버튼, 카드 등 시각적 효과가 필요한 요소.

    5. 예시코드와 출력

    • 예시코드
      • import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: HomePage(), ); } } class HomePage extends StatefulWidget { @override State<HomePage> createState() => _HomePageState(); } class _HomePageState extends State<HomePage> { @override Widget build(BuildContext context) { return Scaffold( body: Column( children: [ InkWell( onTap: () { print("클릭됨"); }, child: ListTile( leading: Icon(Icons.person), title: Text("제목111111"), //subtitle: Text("내용......"), //trailing: Icon(Icons.add), ), ), ], ), ); } }
    • 출력
      • notion image

    2. GestureDetector

    1. 역할

    • 사용자 제스처를 감지하는 다목적 위젯.

    2. 주요 속성:

    • onTap: 클릭 이벤트 처리.
    • onPanUpdate: 드래그 중인 위치 변화 감지.
    • onDoubleTap: 더블 클릭 이벤트 처리.

    3. 특징

    • 모든 제스처 감지 가능(탭, 스와이프, 핀치 등).
    • 시각적 효과 없음(커스터마이징 필요).

    4. 사용 예

    • 제스처 기반 인터페이스 구현.

    5. 예시코드 (출력은 위와 같음)

    import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: HomePage(), ); } } class HomePage extends StatefulWidget { @override State<HomePage> createState() => _HomePageState(); } class _HomePageState extends State<HomePage> { @override Widget build(BuildContext context) { return Scaffold( body: Column( children: [ GestureDetector( onTap: () { print("클릭됨"); }, child: ListTile( leading: Icon(Icons.person), title: Text("제목111111"), //subtitle: Text("내용......"), //trailing: Icon(Icons.add), ), ), ], ), ); } }
     

    3. 주요 차이점

    1. 리플 효과: InkWell은 자동 제공, GestureDetector는 없음.
    1. 용도: InkWell은 단순 클릭용, GestureDetector는 제스처 제어용.
    Share article
    Contents
    1. InkWell2. GestureDetector3. 주요 차이점

    stupefyee

    RSS·Powered by Inblog