diff --git a/.idea/libraries/Dart_Packages.xml b/.idea/libraries/Dart_Packages.xml
index 9c0f6bf..e7a63b8 100644
--- a/.idea/libraries/Dart_Packages.xml
+++ b/.idea/libraries/Dart_Packages.xml
@@ -75,7 +75,7 @@
-
+
@@ -224,7 +224,7 @@
-
+
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 44328b9..f69ab1c 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -7,8 +7,15 @@
+
+
+
+
+
+
+
diff --git a/README.md b/README.md
index 8917dab..fba59b0 100644
--- a/README.md
+++ b/README.md
@@ -60,7 +60,7 @@ import 'package:flutter_custom_calendar/flutter_custom_calendar.dart';
### 动画演示
-![](./img.gif)
+![](https://github.com/ifgyong/flutter_custom_calendar/blob/master/img.gif)
### [查看API](https://github.com/ifgyong/flutter_custom_calendar/blob/master/API.md)
### [查看一个例子 如何使用](https://github.com/ifgyong/flutter_custom_calendar/blob/master/example/lib/main.dart)
diff --git a/example/lib/main.dart b/example/lib/main.dart
index 175a9e4..7f31223 100644
--- a/example/lib/main.dart
+++ b/example/lib/main.dart
@@ -69,6 +69,11 @@ class _MyHomePageState extends State {
dayWidgetBuilder: (DateModel model) {
double wd = (MediaQuery.of(context).size.width - 20) / 7;
bool _isSelected = model.isSelected;
+ if (_isSelected &&
+ CalendarSelectedMode.singleSelect ==
+ controller.calendarConfiguration.selectMode) {
+ _selectDate = model.toString();
+ }
return ClipRRect(
borderRadius: BorderRadius.all(Radius.circular(wd / 2)),
child: Container(
diff --git a/example/pubspec.lock b/example/pubspec.lock
index 413304b..5c76dc8 100644
--- a/example/pubspec.lock
+++ b/example/pubspec.lock
@@ -75,7 +75,7 @@ packages:
name: flutter_custom_calendar
url: "https://pub.flutter-io.cn"
source: hosted
- version: "1.0.2"
+ version: "1.0.4+0.2"
flutter_test:
dependency: "direct dev"
description: flutter
diff --git a/example/pubspec.yaml b/example/pubspec.yaml
index 2444baa..825d3b3 100644
--- a/example/pubspec.yaml
+++ b/example/pubspec.yaml
@@ -29,7 +29,7 @@ dependencies:
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^0.1.3
- flutter_custom_calendar: ^1.0.2
+ flutter_custom_calendar: ^1.0.4+0.3
dev_dependencies:
flutter_test:
diff --git a/lib/utils/lunar_util.dart b/lib/utils/lunar_util.dart
index dbd46c0..e257918 100644
--- a/lib/utils/lunar_util.dart
+++ b/lib/utils/lunar_util.dart
@@ -1,9 +1,9 @@
import 'package:flutter_custom_calendar/flutter_custom_calendar.dart';
import 'package:flutter_custom_calendar/utils/solar_term_util.dart';
-/**
- * 农历的工具类
- */
+///**
+///* 农历的工具类
+///*/
class LunarUtil {
static List LUNAR_MONTH_DAYS = [
1887,
@@ -461,14 +461,14 @@ class LunarUtil {
0x107e48
];
- /**
- * 保存每年24节气
- */
+ ////**
+ ///* 保存每年24节气
+ ///*/
static final Map> SOLAR_TERMS = new Map();
- /**
- * 公历节日
- */
+ ////**
+ ///* 公历节日
+ ///*/
static List SOLAR_CALENDAR = [
"0101元旦",
"0214情人节",
diff --git a/lib/utils/solar_term_util.dart b/lib/utils/solar_term_util.dart
index 613566a..c8d37c4 100644
--- a/lib/utils/solar_term_util.dart
+++ b/lib/utils/solar_term_util.dart
@@ -3,14 +3,8 @@ import 'dart:math';
import 'package:flutter_custom_calendar/utils/math_util.dart';
-/**
- * http://www.cnblogs.com/moodlxs/archive/2010/12/18/2345392.html
- * 24节气计算公式,参考该博客实现
- */
class SolarTermUtil {
- /**
- * 24节气
- */
+ /// 24节气
static List SOLAR_TERMS = [
"春分",
"清明",
@@ -38,25 +32,17 @@ class SolarTermUtil {
"惊蛰",
];
- /**
- * 每弧度的角秒数
- */
+ /// 每弧度的角秒数
static final double SECOND_PER_RAD = 180 * 3600 / pi;
- /**
- * 每弧度的角度数
- */
+ /// 每弧度的角度数
static final double ANGLE_PER_RAD = 180 / pi;
- /**
- * 日历计算
- * 2000年前儒略日数(2000-1-1)
- */
+ /// 日历计算
+ /// * 2000年前儒略日数(2000-1-1)
static final double J2000 = 2451545;
- /**
- * 黄赤交角系数表
- */
+ /// 黄赤交角系数表
static final List H_C_ANGLE_TABLE = [
0,
50287.92262,
@@ -68,9 +54,7 @@ class SolarTermUtil {
0.00001
];
- /**
- * 世界时与原子时之差计算表
- */
+ /// 世界时与原子时之差计算表
static final List DTS = [
-4000,
108371.7,
diff --git a/lib/widget/month_view.dart b/lib/widget/month_view.dart
index 429a3c6..d4dcee1 100644
--- a/lib/widget/month_view.dart
+++ b/lib/widget/month_view.dart
@@ -249,6 +249,7 @@ class ItemContainerState extends State {
case CalendarSelectedMode.multiSelect:
if (calendarProvider.selectedDateList.contains(dateModel)) {
calendarProvider.selectedDateList.remove(dateModel);
+ _notifiCationUnCalendarSelect(dateModel);
} else {
//多选,判断是否超过限制,超过范围
if (calendarProvider.selectedDateList.length ==
@@ -258,11 +259,14 @@ class ItemContainerState extends State {
}
return;
}
+ dateModel.isSelected = !dateModel.isSelected;
calendarProvider.selectedDateList.add(dateModel);
+// _notifiCationCalendarSelect(dateModel);
}
//多选也可以弄这些单选的代码
calendarProvider.selectDateModel = dateModel;
+ print('多选:${calendarProvider.selectedDateList.toString()}');
break;
/// 单选
@@ -270,14 +274,9 @@ class ItemContainerState extends State {
/// 加入已经选择了多个 则进行取消操作
calendarProvider.selectedDateList.forEach((element) {
- if (configuration.unCalendarSelect != null) {
- configuration.unCalendarSelect(element);
- }
element.isSelected = false;
+ _notifiCationUnCalendarSelect(element);
});
- if (configuration.calendarSelect != null) {
- configuration.calendarSelect(dateModel);
- }
//单选需要刷新上一个item
if (calendarProvider.lastClickItemState != this) {
@@ -285,9 +284,9 @@ class ItemContainerState extends State {
calendarProvider.lastClickItemState = this;
}
_notifiCationUnCalendarSelect(calendarProvider.selectDateModel);
-
+ dateModel.isSelected = true;
calendarProvider.selectDateModel = dateModel;
-
+ _notifiCationCalendarSelect(dateModel);
setState(() {});
break;
@@ -332,16 +331,17 @@ class ItemContainerState extends State {
setState(() {});
}
- /// 所有数组操作完了 进行通知分发
- if (configuration.calendarSelect != null &&
- calendarProvider.selectedDateList.length > 0) {
- calendarProvider.selectedDateList.forEach((element) {
- _notifiCationCalendarSelect(element);
- });
- }
break;
}
+ /// 所有数组操作完了 进行通知分发
+ if (configuration.calendarSelect != null &&
+ calendarProvider.selectedDateList.length > 0) {
+ calendarProvider.selectedDateList.forEach((element) {
+ _notifiCationCalendarSelect(element);
+ });
+ }
+
refreshItem(!this.dateModel.isSelected);
},
child: configuration.dayWidgetBuilder(dateModel),
diff --git a/pubspec.yaml b/pubspec.yaml
index 7f86309..6387f3a 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,6 +1,6 @@
name: flutter_custom_calendar
description: A calendar control of flutter that supports three selection modes。
-version: 1.0.4
+version: 1.0.4+0.3
homepage: http://www.fgyong.cn
author: fgyong
repository: https://github.com/ifgyong/flutter_custom_calendar