[flutter] getX 함수를 사용하여 터치 이벤트에 따른 위젯 회전 각도 계산하기
이 문서에서는 Flutter 프레임워크의 GetX
함수를 사용하여 터치 이벤트에 따른 위젯의 회전 각도를 계산하는 방법을 알아보겠습니다.
getX 함수란?
GetX
는 Flutter의 GestureDetector
클래스의 속성 중 하나로, 사용자의 터치 동작에 대한 이벤트를 감지하고 처리하는 기능을 제공합니다. 이 함수는 onHorizontalDragUpdate
와 onVerticalDragUpdate
이벤트를 사용하여 위젯의 회전 각도를 계산하는 데에 사용됩니다.
위젯 회전 각도 계산하기
GetX
함수를 사용하여GestureDetector
위젯을 생성합니다.
GestureDetector(
onHorizontalDragUpdate: (DragUpdateDetails details) {
// 가로 스와이프 동작 감지
double deltaX = details.delta.dx; // x축 이동 거리
double angle = deltaX * 0.1; // 회전 각도 계산식 (임의의 상수 0.1을 곱하여 회전 감도를 조정할 수 있음)
setState(() {
// 위젯의 각도 업데이트
widget.angle += angle;
});
},
onVerticalDragUpdate: (DragUpdateDetails details) {
// 세로 스와이프 동작 감지
double deltaY = details.delta.dy; // y축 이동 거리
double angle = deltaY * 0.1; // 회전 각도 계산식 (임의의 상수 0.1을 곱하여 회전 감도를 조정할 수 있음)
setState(() {
// 위젯의 각도 업데이트
widget.angle += angle;
});
},
child: Transform.rotate(
angle: widget.angle,
child: YourWidget(),
),
)
위 코드에서는 onHorizontalDragUpdate
와 onVerticalDragUpdate
이벤트를 사용하여 각각 가로 스와이프와 세로 스와이프 동작을 감지합니다. Delta
값을 이용하여 이동 거리를 계산하고, 계산된 값에 회전 각도를 적용하여 위젯을 회전시킵니다. angle
값은 setState
함수를 사용하여 업데이트되며, Transform.rotate
위젯을 통해 실제 회전이 적용되는 위젯에 각도를 전달합니다.
참고 자료
- Flutter GestureDetector 문서: https://api.flutter.dev/flutter/widgets/GestureDetector-class.html
- Flutter Transform 문서: https://api.flutter.dev/flutter/widgets/Transform-class.html