[flutter] 플러터에서 Visibility를 이용한 확대/축소 컨트롤 제어하기

이번 포스팅에서는 플러터에서 화면 상의 위젯을 확대/축소할 수 있는 방법에 대해 알아보겠습니다. 특히, Visibility 위젯을 활용하여 화면 중앙에 위치한 버튼을 터치할 때 확대/축소 여부를 제어하는 방법에 대해 배워보겠습니다.

확대/축소 제어하기

먼저, 플러터에서 확대/축소 제어를 위해 transformScale 위젯을 활용할 수 있습니다. 이를 통해 버튼의 사이즈를 조절하거나 배율을 조절할 수 있습니다. 그러나 화면에 버튼을 표시하지 않고 싶은 경우 Visibility 위젯을 이용할 수 있습니다.

Visibility 위젯 활용하기

아래의 예제 코드를 통해 Visibility 위젯을 사용하여 버튼을 화면에 보이거나 감출 수 있는 방법을 살펴보겠습니다.

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: GestureDetector(
            onTap: () {
              setState(() {
                _isVisible = !_isVisible;
              });
            },
            child: _isVisible ? _buildButton() : Container(),
          ),
        ),
      ),
    );
  }

  bool _isVisible = true;

  Widget _buildButton() {
    return SizedBox(
      width: 100,
      height: 50,
      child: ElevatedButton(
        onPressed: () {
          // 실행할 동작 정의
        },
        child: Text('버튼'),
      ),
    );
  }
}

위의 코드에서는 Visibility 위젯을 이용하여 화면에 버튼을 보이거나 감출 수 있도록 했습니다. GestureDetector를 통해 화면 터치에 반응하도록 하고, onTap 이벤트에서 setState 함수를 이용하여 _isVisible 변수를 토글합니다.

이렇게 함으로써 플러터 앱에서 Visibility를 이용하여 화면 상의 위젯을 확대/축소할 수 있게 되었습니다.

마치며

이번 포스팅에서는 플러터에서 화면 상의 위젯을 확대/축소하는 방법에 대해 알아보았습니다. Visibility 위젯을 활용하여 편리하게 화면을 제어할 수 있게 되었습니다. 이를 응용하여 다양한 상황에 맞게 화면 컨트롤을 할 수 있을 것입니다.

참고문헌: Flutter 공식 문서