[flutter] 플러터에서 상태 관리와 Visibility 결합하기

플러터 애플리케이션을 개발할 때 상태 관리는 매우 중요합니다. 또한, 화면에 여러 요소를 보여주거나 가리기 위해 Visibility 위젯을 사용하는 것도 흔한 일입니다. 이번 포스팅에서는 플러터에서 상태 관리와 Visibility 위젯을 결합하는 방법을 알아보겠습니다.

1. 상태 관리

플러터 앱에서 상태 관리를 위해 가장 많이 사용되는 방법은 setState 메서드를 활용하는 것입니다. setState를 사용하면 상태가 변경될 때마다 화면을 다시 그리게 됩니다.

예를 들어, 다음은 간단한 상태 관리 예제입니다.

import 'package:flutter/material.dart';

class MyWidget extends StatefulWidget {
  @override
  _MyWidgetState createState() => _MyWidgetState();
}

class _MyWidgetState extends State<MyWidget> {
  bool _isVisible = true;

  void _toggleVisibility() {
    setState(() {
      _isVisible = !_isVisible;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Column(
      children: <Widget>[
        RaisedButton(
          onPressed: _toggleVisibility,
          child: Text('Toggle Visibility'),
        ),
        _isVisible ? Text('Visible Content') : Container(),
      ],
    );
  }
}

위 예제에서 _isVisible 상태를 토글하는 버튼을 누르면 해당 상태에 따라 “Visible Content”가 표시되거나 숨겨집니다.

2. Visibility 위젯

Visibility 위젯은 자식 위젯의 가시성을 제어하는 데 사용됩니다. 이 위젯을 통해 자식 위젯을 화면에 표시하거나 감출 수 있습니다. visible 속성을 사용하여 화면에 보일지 여부를 제어할 수 있습니다.

예를 들어, 다음은 Visibility 위젯을 사용하여 상태를 관리하는 예제입니다.

import 'package:flutter/material.dart';

class MyWidget extends StatefulWidget {
  @override
  _MyWidgetState createState() => _MyWidgetState();
}

class _MyWidgetState extends State<MyWidget> {
  bool _isVisible = true;

  void _toggleVisibility() {
    setState(() {
      _isVisible = !_isVisible;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Column(
      children: <Widget>[
        RaisedButton(
          onPressed: _toggleVisibility,
          child: Text('Toggle Visibility'),
        ),
        Visibility(
          visible: _isVisible,
          child: Text('Visible Content'),
        ),
      ],
    );
  }
}

위 예제에서 _isVisible 상태를 토글하는 버튼을 누르면 해당 상태에 따라 “Visible Content”가 표시되거나 숨겨집니다.

결론

플러터 앱에서 상태 관리와 Visibility 위젯을 결합하여 화면 요소들을 동적으로 제어할 수 있습니다. 이를 통해 사용자에게 보다 향상된 사용 경험을 제공할 수 있습니다.

여러분도 상태 관리와 Visibility 위젯을 활용하여 다양한 앱을 개발해보시기 바랍니다.

플러터 공식 문서

상태 관리와 setState 관련 포스팅