티스토리 뷰
반응형
제스처, 애니메이션 및 여러 형식을 갖춘 매우 커스터마이즈 가능한 Flutter 캘린더입니다.
생성자
TableCalendar({
Key? key,
required DateTime focusedDay,
required DateTime firstDay,
required DateTime lastDay,
DateTime? currentDay,
dynamic locale,
DateTime? rangeStartDay,
DateTime? rangeEndDay,
List<int> weekendDays = const [DateTime.saturday, DateTime.sunday],
CalendarFormat calendarFormat = CalendarFormat.month,
Map<CalendarFormat, String> availableCalendarFormats = const {
CalendarFormat.month: 'Month',
CalendarFormat.twoWeeks: '2 weeks',
CalendarFormat.week: 'Week'
},
bool headerVisible = true,
bool daysOfWeekVisible = true,
bool pageJumpingEnabled = false,
bool pageAnimationEnabled = true,
bool sixWeekMonthsEnforced = false,
bool shouldFillViewport = false,
bool weekNumbersVisible = false,
double rowHeight = 52.0,
double daysOfWeekHeight = 16.0,
Duration formatAnimationDuration = const Duration(milliseconds: 200),
Curve formatAnimationCurve = Curves.linear,
Duration pageAnimationDuration = const Duration(milliseconds: 300),
Curve pageAnimationCurve = Curves.easeOut,
StartingDayOfWeek startingDayOfWeek = StartingDayOfWeek.sunday,
HitTestBehavior dayHitTestBehavior = HitTestBehavior.opaque,
AvailableGestures availableGestures = AvailableGestures.all,
SimpleSwipeConfig simpleSwipeConfig = const SimpleSwipeConfig(
verticalThreshold: 25.0,
swipeDetectionBehavior: SwipeDetectionBehavior.continuousDistinct
),
HeaderStyle headerStyle = const HeaderStyle(),
DaysOfWeekStyle daysOfWeekStyle = const DaysOfWeekStyle(),
CalendarStyle calendarStyle = const CalendarStyle(),
CalendarBuilders<T> calendarBuilders = const CalendarBuilders(),
RangeSelectionMode rangeSelectionMode = RangeSelectionMode.toggledOff,
List<T> eventLoader(DateTime day)?,
bool enabledDayPredicate(DateTime day)?,
bool selectedDayPredicate(DateTime day)?,
bool holidayPredicate(DateTime day)?,
OnRangeSelected? onRangeSelected,
OnDaySelected? onDaySelected,
OnDaySelected? onDayLongPressed,
void onDisabledDayTapped(DateTime day)?,
void onDisabledDayLongPressed(DateTime day)?,
void onHeaderTapped(DateTime focusedDay)?,
void onHeaderLongPressed(DateTime focusedDay)?,
void onPageChanged(DateTime focusedDay)?,
void onFormatChanged(CalendarFormat format)?,
void onCalendarCreated(PageController pageController)?
})
TableCalendar 위젯을 생성합니다.
속성
availableCalendarFormats → Map<CalendarFormat, String>
CalendarFormats와 이를 연결하는 문자열 이름의 맵입니다. 이 CalendarFormats는 내부 논리에서 표시 형식을 관리하는 데 사용됩니다.availableGestures → AvailableGestures
TableCalendar에서 사용 가능한 스와이프 제스처를 지정합니다.AvailableGestures.none
을 사용하면, 캘린더는 버튼을 통해서만 상호작용할 수 있습니다.calendarBuilders → CalendarBuilders<T>
TableCalendar와 함께 사용할 커스텀 빌더 집합입니다. 이를 사용하여 UI를 완전히 조정할 수 있습니다.calendarFormat → CalendarFormat
TableCalendar의 현재 형식을 지정합니다.calendarStyle → CalendarStyle
TableCalendar의 콘텐츠 스타일입니다.currentDay → DateTime?
오늘로 간주될DateTime
입니다. 기본값은DateTime.now()
입니다.dayHitTestBehavior → HitTestBehavior
TableCalendar 내의 모든 날 셀에 대한 HitTestBehavior입니다.daysOfWeekHeight → double
TableCalendar의 주중 행 높이를 설정하는 데 사용됩니다.daysOfWeekStyle → DaysOfWeekStyle
TableCalendar의 헤더와 콘텐츠 사이에 표시되는 주중 스타일입니다.daysOfWeekVisible → bool
주중 행의 가시성을 결정합니다.enabledDayPredicate → (bool Function(DateTime day)?)
주어진 날이 활성화될지 여부를 결정하는 함수입니다. false를 반환하면, 이 날은 비활성화됩니다.eventLoader → (List<T> Function(DateTime day)?)
특정 날에 이벤트 목록을 할당하는 함수입니다.firstDay → DateTime
TableCalendar의 첫 번째 활성 날입니다. 이 날 이전으로 스와이프를 막습니다.focusedDay → DateTime
현재 표시되고 집중된 날을 결정하는DateTime
입니다.formatAnimationCurve → Curve
calendarFormat이 변경될 때 발생하는 크기 애니메이션의 곡선을 지정합니다.formatAnimationDuration → Duration
calendarFormat이 변경될 때 발생하는 크기 애니메이션의 지속 시간을 지정합니다.headerStyle → HeaderStyle
TableCalendar의 헤더 스타일입니다.headerVisible → bool
캘린더 헤더의 가시성을 결정합니다.holidayPredicate → (bool Function(DateTime day)?)
주어진 날이 휴일로 간주되는지 여부를 결정하는 함수입니다.key → Key?
위젯 트리에서 위젯을 교체하는 방식을 제어합니다.lastDay → DateTime
TableCalendar의 마지막 활성 날입니다. 이 날 이후로 스와이프를 막습니다.locale → dynamic
TableCalendar 날짜를 포맷할 로케일입니다. 예: 'en_US'.onCalendarCreated → (void Function(PageController pageController)?)
캘린더가 생성될 때 호출되며, PageController를 노출합니다.onDayLongPressed → OnDaySelected?
어떤 날이 길게 눌렸을 때 호출됩니다.onDaySelected → OnDaySelected?
어떤 날이 탭되었을 때 호출됩니다.onDisabledDayLongPressed → (void Function(DateTime day)?)
비활성화된 날이 길게 눌렸을 때 호출됩니다.onDisabledDayTapped → (void Function(DateTime day)?)
비활성화된 날이 탭되었을 때 호출됩니다.onFormatChanged → (void Function(CalendarFormat format)?)
calendarFormat이 변경될 때 호출됩니다.onHeaderLongPressed → (void Function(DateTime focusedDay)?)
헤더가 길게 눌렸을 때 호출됩니다.onHeaderTapped → (void Function(DateTime focusedDay)?)
헤더가 탭되었을 때 호출됩니다.onPageChanged → (void Function(DateTime focusedDay)?)
현재 표시된 캘린더 페이지가 변경될 때 호출됩니다.onRangeSelected → OnRangeSelected?
날짜 범위가 선택될 때 호출됩니다.pageAnimationCurve → Curve
현재 표시된 캘린더 페이지가 변경될 때 발생하는 스크롤 애니메이션의 곡선을 지정합니다.pageAnimationDuration → Duration
현재 표시된 캘린더 페이지가 변경될 때 발생하는 스크롤 애니메이션의 지속 시간을 지정합니다.pageAnimationEnabled → bool
true로 설정하면,focusedDay
를 업데이트할 때 현재 표시된 캘린더 페이지가 변경되면 스크롤 애니메이션이 표시됩니다.pageJumpingEnabled → bool
true로 설정하면,CalendarFormat.month
형식에서 외부 날을 탭하면 탭된 월의 캘린더 페이지로 이동합니다.rangeEndDay → DateTime?
선택된 날짜 범위의 끝입니다.rangeSelectionMode → RangeSelectionMode
현재 범위 선택 모드입니다.rangeStartDay → DateTime?
선택된 날짜 범위의 시작입니다.rowHeight → double
TableCalendar의 행 높이를 설정하는 데 사용됩니다.startingDayOfWeek → StartingDayOfWeek
TableCalendar가 주를 제공된 날로 시작합니다.weekendDays → List<int>
주말로 간주되는 날의 목록입니다. int 리터럴(예: 1) 대신 내장된DateTime
요일 상수(예:DateTime.monday
)를 사용하세요.weekNumbersVisible → bool
캘린더에서 주 번호를 표시할지 여부입니다.
메서드
createElement() → StatefulElement
이 위젯의 트리에서 위치를 관리할StatefulElement
를 생성합니다.createState() → _TableCalendarState<T>
주어진 위치에 이 위젯의 변경 가능한 상태를 생성합니다.debugDescribeChildren() → List<DiagnosticsNode>
이 노드의 자식들을 설명하는DiagnosticsNode
객체의
반응형
'Flutter > 패키지' 카테고리의 다른 글
flutter] table_calendar > CalendarBuilders 클래스 (0) | 2024.09.05 |
---|---|
flutter] table_calendar 패키지 설명 (0) | 2024.09.05 |
댓글
공지사항