new change to use intaleq_map sdk 04-16-4
This commit is contained in:
169
packages/calendar_builder/example/lib/custom_month_builder.dart
Normal file
169
packages/calendar_builder/example/lib/custom_month_builder.dart
Normal file
@@ -0,0 +1,169 @@
|
||||
import 'package:calendar_builder/calendar_builder.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class CustomMonthBuilderScreen extends StatelessWidget {
|
||||
const CustomMonthBuilderScreen({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: SafeArea(
|
||||
child: Column(
|
||||
children: [
|
||||
Expanded(
|
||||
child: CbMonthBuilder(
|
||||
cbConfig: CbConfig(
|
||||
startDate: DateTime(2020),
|
||||
endDate: DateTime(2123),
|
||||
selectedDate: DateTime(2022),
|
||||
selectedYear: DateTime(2022),
|
||||
weekStartsFrom: WeekStartsFrom.sunday,
|
||||
eventDates: [
|
||||
DateTime(2022, 1, 2),
|
||||
DateTime(2022, 1, 2),
|
||||
DateTime(2022, 1, 3)
|
||||
],
|
||||
highlightedDates: [
|
||||
DateTime(2022, 1, 6),
|
||||
DateTime(2022, 1, 3)
|
||||
]),
|
||||
yearDropDownCustomizer: YearDropDownCustomizer(
|
||||
yearHeaderBuilder:
|
||||
(isYearPickerExpanded, selectedDate, selectedYear, year) {
|
||||
return Container(
|
||||
height: 40,
|
||||
color: Colors.yellow,
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
Text(
|
||||
year,
|
||||
style: const TextStyle(fontWeight: FontWeight.bold),
|
||||
),
|
||||
Icon(!isYearPickerExpanded
|
||||
? Icons.arrow_drop_down_outlined
|
||||
: Icons.arrow_drop_up_outlined)
|
||||
],
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
monthCustomizer: MonthCustomizer(
|
||||
montMinhHeight: 200,
|
||||
monthMinWidth: 450,
|
||||
padding: const EdgeInsets.all(20),
|
||||
monthHeaderBuilder:
|
||||
(month, headerHeight, headerWidth, paddingLeft) {
|
||||
return Container(
|
||||
color: Colors.grey[200],
|
||||
height: headerHeight,
|
||||
width: headerWidth,
|
||||
child: Padding(
|
||||
padding: EdgeInsets.only(left: paddingLeft),
|
||||
child: Align(
|
||||
alignment: Alignment.center,
|
||||
child: Text(
|
||||
month,
|
||||
style: const TextStyle(
|
||||
fontSize: 22,
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
monthWeekBuilder: (index, weeks, weekHeight, weekWidth) {
|
||||
return SizedBox(
|
||||
height: weekHeight,
|
||||
width: weekWidth,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(4.0),
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.red.withOpacity(0.1),
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
border: Border.all(color: Colors.red)),
|
||||
child: Align(
|
||||
child: Text(
|
||||
weeks,
|
||||
style: const TextStyle(
|
||||
fontSize: 14,
|
||||
color: Colors.red,
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
overflow: TextOverflow.ellipsis,
|
||||
maxLines: 1,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
monthButtonBuilder: (dateTime,
|
||||
childHeight,
|
||||
childWidth,
|
||||
isSelected,
|
||||
isDisabled,
|
||||
hasEvent,
|
||||
isHighlighted,
|
||||
isCurrentDay) {
|
||||
//Text Theme
|
||||
final txtTheme = Theme.of(context).textTheme;
|
||||
//color theme
|
||||
final colorTheme = Theme.of(context);
|
||||
|
||||
var daysText = Align(
|
||||
child: Text(
|
||||
'${dateTime.day}',
|
||||
style: isDisabled
|
||||
? txtTheme.titleMedium
|
||||
: isSelected
|
||||
? txtTheme.bodyLarge!.copyWith(
|
||||
fontWeight: FontWeight.bold,
|
||||
color:
|
||||
colorTheme.brightness == Brightness.dark
|
||||
? Colors.black
|
||||
: Colors.white)
|
||||
: isHighlighted
|
||||
? txtTheme.bodyLarge //Highlighted TextStyle
|
||||
: isCurrentDay
|
||||
? txtTheme
|
||||
.bodyLarge //CurrentDay TextStyle
|
||||
: txtTheme.bodyLarge,
|
||||
),
|
||||
);
|
||||
if (isSelected) {
|
||||
return Container(
|
||||
decoration: const BoxDecoration(
|
||||
color: Colors.red,
|
||||
shape: BoxShape.rectangle,
|
||||
),
|
||||
margin: const EdgeInsets.all(2),
|
||||
child: daysText,
|
||||
);
|
||||
}
|
||||
return Container(
|
||||
decoration: BoxDecoration(
|
||||
color: isDisabled ? Colors.grey[200] : Colors.yellow,
|
||||
shape: BoxShape.rectangle,
|
||||
border: hasEvent || isHighlighted
|
||||
? Border.all(
|
||||
color:
|
||||
isHighlighted ? Colors.red : Colors.blue,
|
||||
width: 2)
|
||||
: null),
|
||||
margin: const EdgeInsets.all(2),
|
||||
child: daysText,
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user