플러터(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 설정에 대해 알아보았습니다. 이를 활용하여 앱 화면을 동적으로 제어하는 다양한 기능을 개발할 수 있습니다.
참고문헌:
- Flutter Documentation. “Visibility class.” https://api.flutter.dev/flutter/widgets/Visibility-class.html