본문 바로가기

Flutter-플러터/플러터 공부

flutter heatmap package

반응형

flutter_heatmap_calendar | Flutter Package (pub.dev)

 

flutter_heatmap_calendar | Flutter Package

Flutter heatmap calendar inspired by github contribution chart which includes traditional mode / calendar mode.

pub.dev

 

하루지출에 들어가는 히트맵 캘린더 패키지 

 

 

Map타입으로 데이터를 저장한다. 

<날짜, 색값> 

 

해당 날짜의 해당 색의 값이 들어오면 색의 농도가 변하게 하는 구조이다. 

깃허브 챌린지에서 많이 사용한다! 

 

class MonthlySummary extends StatelessWidget {
  final Map<DateTime, int>? datasets;
  final String startDate;

  const MonthlySummary({
    super.key,
    required this.datasets,
    required this.startDate,
  });

  @override
  Widget build(BuildContext context) {
    return Container(
      padding: const EdgeInsets.only(top: 25, bottom: 25),
      child: HeatMap(
        startDate: createDateTimeObject(startDate),
        endDate: DateTime.now().add(Duration(days: 0)),
        datasets: datasets,
        colorMode: ColorMode.color,
        defaultColor: Colors.grey[200],
        textColor: Colors.white,
        showColorTip: false,
        showText: true,
        scrollable: true,
        size: 30,
        colorsets: const {
          1: Color.fromARGB(20, 2, 179, 8),
          2: Color.fromARGB(40, 2, 179, 8),
          3: Color.fromARGB(60, 2, 179, 8),
          4: Color.fromARGB(80, 2, 179, 8),
          5: Color.fromARGB(100, 2, 179, 8),
          6: Color.fromARGB(120, 2, 179, 8),
          7: Color.fromARGB(150, 2, 179, 8),
          8: Color.fromARGB(180, 2, 179, 8),
          9: Color.fromARGB(220, 2, 179, 8),
          10: Color.fromARGB(255, 2, 179, 8),
        },
        onClick: (value) {
          ScaffoldMessenger.of(context)
              .showSnackBar(SnackBar(content: Text(value.toString())));
        },
      ),
    );
  }
}
728x90
반응형