[flutter] getX 함수를 사용하여 여러 개의 위젯에서 터치 좌표 가져오기

소개

Flutter는 터치와 같은 사용자 입력을 처리하는 다양한 기능을 제공합니다. 이 중에 getX 함수를 사용하면 여러 개의 위젯에서 터치 좌표를 가져올 수 있습니다. getX 함수를 사용하여 위젯을 터치할 때마다 해당 위젯의 좌표를 가져와서 사용자 요구에 따라 활용할 수 있습니다.

getX 함수 이해하기

getX 함수는 GetX 패키지에 포함되어 있습니다. 이 함수를 사용하려면 먼저 GetX 패키지를 설치해야 합니다.

dependencies:
  get: ^4.1.4

GetX 패키지를 설치하고 나면 getX 함수를 사용하여 터치 이벤트를 처리할 수 있습니다. getX 함수는 매개 변수로 BuildContext를 전달받고, 이를 활용하여 해당 위젯의 위치 정보를 가져옵니다.

예제 코드

아래 예제 코드는 getX 함수를 사용해 여러 개의 위젯에서 터치 좌표를 가져오는 방법을 보여줍니다. 두 개의 Container 위젯이 생성되고, 각각에 터치 이벤트를 처리하는 GestureDetector를 추가합니다.

import 'package:flutter/material.dart';
import 'package:get/get.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return GetMaterialApp(
      title: 'GetX Touch Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('GetX Touch Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            GestureDetector(
              onTap: () {
                final touchPosition = getX(context);
                print('Container1: $touchPosition');
              },
              child: Container(
                width: 200,
                height: 200,
                color: Colors.red,
              ),
            ),
            GestureDetector(
              onTap: () {
                final touchPosition = getX(context);
                print('Container2: $touchPosition');
              },
              child: Container(
                width: 200,
                height: 200,
                color: Colors.blue,
              ),
            ),
          ],
        ),
      ),
    );
  }
}

위의 코드에서 getX 함수는 GestureDetector의 onTap 콜백에서 사용됩니다. 각 GestureDetector마다 getX 함수를 호출하여 터치 좌표를 가져오고, 해당 좌표를 출력합니다.

결론

GetX 함수를 사용하면 Flutter 앱에서 여러 개의 위젯에서 터치 좌표를 쉽게 가져올 수 있습니다. getX 함수를 사용하여 사용자 입력을 감지하고, 해당 정보를 활용하여 다양한 기능을 구현할 수 있습니다.

참고 자료