weekly_tab_pager 0.0.9 copy "weekly_tab_pager: ^0.0.9" to clipboard
weekly_tab_pager: ^0.0.9 copied to clipboard

discontinuedreplaced by: date_tab_pager

Customizable TabBar component with integrated TabView that displays weekdays and allows for infinite scrolling by week.

Weekly Tab Pager #

Customizable TabBar component with integrated TabView that displays weekdays and allows for infinite scrolling by week.

This component is used in the real-world application Student Planner (Android).

Feel free to use this library if you find it useful!

Features #

  • TabBar and TabView connected together
  • Single controller for navigation
  • Smooth animiaton during scrolling
  • Infinite scrolling in both directions
  • Specified days of week in tabs
  • Callbacks for tab/page changes

Usage #

Add the following line to pubspec.yaml:

dependencies:
  weekly_tab_pager: ^0.0.9

Import the package in your code:

import 'package:weekly_tab_pager/weekly_tab_pager.dart';

Declare a controller for navigation:

final controller = WeeklyTabController(
  initialDate: DateTime.now(),
  weekdays: [1, 2, 3, 4, 5, 6],
  weekCount: 100,
  vsync: this,
);

Add a tabbar and define how tabs will be built:

WeeklyTabBar(
  controller: _controller,
  tabBuilder: _buildTab,
)

Widget _buildTab(BuildContext context, DateTime date) {
  return Column(
    mainAxisAlignment: MainAxisAlignment.center,
    children: [
      Text(DateFormat('E').format(date).toUpperCase()),
      const SizedBox(height: 4),
      Text(date.day.toString()),
    ],
  );
}

Add a tabview and define how pages will be built:

WeeklyTabView(
  controller: _controller,
  pageBuilder: _buildPage,
)

Widget _buildPage(BuildContext context, DateTime date) {
  return Card(
    margin: const EdgeInsets.all(24),
    child: Center(
      child: Text(
        DateFormat.yMMMMd().format(date),
        style: Theme.of(context).textTheme.titleLarge,
      ),
    ),
  );
}

Use a controller to navigate to the specific date:

  controller.animateTo(DateTime.now());

Provide callbacks to listen navigator events:

  onTabScrolled: (date) => ...,
  onTabChanged: (date) => ...,
  onPageChanged: (date) => ...,

Make sure to check out example for more details.

8
likes
140
points
163
downloads

Publisher

unverified uploader

Weekly Downloads

Customizable TabBar component with integrated TabView that displays weekdays and allows for infinite scrolling by week.

Topics

#scrollable #tabs #weekdays #calendar #navigation

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

flutter, intl

More

Packages that depend on weekly_tab_pager