[flutter] Card 위젯의 상태 관리하기

Card 위젯은 Material 디자인을 따르는 다양한 모양의 패널을 만들어주는 Flutter 위젯 중 하나입니다. 애플리케이션에서 Card 위젯을 사용할 때, 그 안의 상태를 관리하는 것이 중요합니다. 이 글에서는 Card 위젯의 상태를 관리하는 방법에 대해 설명하겠습니다.

Card 위젯으로 간단한 예제 구성하기

먼저, 간단한 Card 위젯을 생성해보겠습니다. 아래는 Card 위젯을 사용하여 간단한 디자인을 구성한 예제 코드입니다.

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Card 위젯 상태 관리 예제'),
        ),
        body: Center(
          child: MyCard(),
        ),
      ),
    );
  }
}

class MyCard extends StatefulWidget {
  @override
  _MyCardState createState() => _MyCardState();
}

class _MyCardState extends State<MyCard> {
  bool _isPressed = false;

  @override
  Widget build(BuildContext context) {
    return Card(
      child: InkWell(
        onTap: () {
          setState(() {
            _isPressed = !_isPressed;
          });
        },
        child: Container(
          padding: EdgeInsets.all(15.0),
          child: Text(
            _isPressed ? 'Card가 눌렸습니다' : 'Card',
          ),
        ),
      ),
    );
  }
}

위 예제 코드에서는 Card 위젯을 사용하여 MyCard 클래스를 구성하고, 해당 클래스의 상태를 관리하기 위해 StatefulWidget을 사용했습니다. Card 위젯 안에 있는 InkWell 위젯을 터치할 때마다 상태가 변경되도록 하기 위해 onTap 콜백을 사용했습니다.

Card 위젯의 상태 관리 방법

이 예제에서는 Card 위젯 내에 있는 InkWell 위젯을 터치할 때마다 _isPressed 변수의 값을 변경하여 Card의 상태를 관리하고 있습니다. 이렇게 함으로써, 간단한 상태 관리를 구현할 수 있습니다.

더 복잡한 상태 관리를 위해서는 ProviderBloc 등의 상태 관리 패턴을 적용할 수 있습니다. 해당 패턴을 사용하면 Card 위젯 내에서 발생하는 다양한 이벤트에 대해 더욱 효율적으로 상태를 관리할 수 있습니다.

결론

Card 위젯은 간편한 디자인의 패널을 만들어주는 Flutter의 유용한 위젯 중 하나입니다. 해당 위젯을 사용할 때, 내부 상태를 효과적으로 관리하여 사용자 경험을 향상시킬 수 있습니다.

이상으로 Card 위젯의 상태 관리에 대한 간단한 예제 및 방법에 대해 알아보았습니다. Flutter 애플리케이션을 개발할 때 유용한 지식이 되길 바랍니다.

참고: Flutter 공식 문서 - Card