[flutter] 플러터에서 상속을 통한 위젯 Visibility 설정하기

플러터(Flutter) 앱을 개발하다보면 특정 상황에 따라 위젯을 화면에서 보이거나 숨기는 기능이 필요할 때가 있습니다. 이러한 경우에 Visibility 위젯을 사용하여 상태 변경에 따라 위젯을 표시하거나 숨길 수 있습니다. 또한, 이러한 동작을 위젯 상속을 통해 관리하는 방법에 대해 알아보겠습니다.

1. Visibility 위젯

Visibility 위젯은 자식 위젯을 화면에서 표시하거나 숨길 수 있는 기능을 제공합니다. 아래는 Visibility 위젯의 사용 예시입니다.

Visibility(
  visible: _isVisible,
  child: Text('이 텍스트가 표시됩니다.'),
),

visible 속성을 통해 위젯의 표시 여부를 제어할 수 있습니다. 이 값은 true(기본값) 또는 false가 될 수 있습니다.

2. 위젯 상속을 통한 Visibility 관리

특정 위젯의 Visibility를 부모 위젯에서 관리하려면, 부모 위젯의 상태를 변경하여 자식 위젯의 Visibility를 제어할 수 있습니다. 다음은 StatefulWidget을 사용하여 위젯 상속을 통한 Visibility 관리 예시입니다.

class ParentWidget extends StatefulWidget {
  @override
  _ParentWidgetState createState() => _ParentWidgetState();
}

class _ParentWidgetState extends State<ParentWidget> {
  bool _isVisible = true;

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

  @override
  Widget build(BuildContext context) {
    return Column(
      children: <Widget>[
        Visibility(
          visible: _isVisible,
          child: Text('이 텍스트가 표시됩니다.'),
        ),
        ElevatedButton(
          onPressed: () {
            toggleVisibility();
          },
          child: Text('텍스트 토글'),
        ),
      ],
    );
  }
}

위 예시에서 ParentWidget_isVisible 상태를 관리하고, toggleVisibility 메서드를 통해 이 상태를 변경합니다. 자식 위젯인 Text는 부모 위젯에서 제어되는 Visibility에 따라 화면에 표시됩니다.

위와 같이 상속을 통해 Visibility를 관리하면, 필요에 따라 여러 위젯에 동시에 동일한 Visibility 규칙을 적용할 수 있어 코드를 효율적으로 관리할 수 있습니다.

플러터에서 상속을 통한 위젯 Visibility 설정에 대해 알아보았습니다. 이를 활용하여 앱 화면을 동적으로 제어하는 다양한 기능을 개발할 수 있습니다.

참고문헌: