How to Use the Extended Tabs Package in Flutter

Feb 26, 2022 | Programming

The **Extended Tabs** package extends Flutter’s tab functionalities, providing additional features such as scrolling ancestor or child tabs when overscrolling, customizable indicators, and more. In this article, we will guide you through using this powerful library with user-friendly examples.

Getting Started with Extended Tabs

To get started, you’ll need to include the package in your Flutter project. You can do this by modifying your pubspec.yaml file:

dependencies:
  flutter:
    sdk: flutter
  extended_tabs: any

Key Features of Extended Tabs

  • Carousel Indicator: Show tab indicators in a carousel style.
  • Color Tab Indicator: Use color fills for your tab indicators.
  • Scroll Direction: Customize the scroll direction of your tabs.
  • Cache Extent: Manage how many pages are cached.
  • Pointer Event Management: Control user interactions while scrolling.

Implementing the Features

1. Carousel Indicator

To show tab indicators as a carousel, you can use the following code:

CarouselIndicator(
  controller: _controller,
  selectedColor: Colors.white,
  unselectedColor: Colors.grey,
  strokeCap: StrokeCap.round,
  indicatorPadding: const EdgeInsets.all(5),
)

2. Color Tab Indicator

For a tab indicator with a color fill, use:

TabBar(
  indicator: ColorTabIndicator(Colors.blue),
  labelColor: Colors.black,
  tabs: [
    Tab(text: 'Tab 0'),
    Tab(text: 'Tab 1'),
  ],
  controller: tabController,
)

3. Linking Tabs

To enable scrolling between ancestor and child tab views, set the link parameter to true:

ExtendedTabBarView(
  children: [
    List(Tab0),
    List(Tab1),
    List(Tab2),
    List(Tab3),
  ],
  controller: tabController2,
  link: true,
)

4. Custom Scroll Direction

You can specify whether the tab bar and tab view scrolls horizontally or vertically:

Row(
  children: [
    ExtendedTabBar(
      indicator: const ColorTabIndicator(Colors.blue),
      labelColor: Colors.black,
      scrollDirection: Axis.vertical,
      tabs: const [
        ExtendedTab(text: 'Tab 0', scrollDirection: Axis.vertical),
        ExtendedTab(text: 'Tab 1', scrollDirection: Axis.vertical),
      ],
      controller: tabController,
    ),
    Expanded(
      child: ExtendedTabBarView(
        children: [
          const ListWidget('Tab 1', scrollDirection: Axis.horizontal),
          const ListWidget('Tab 2', scrollDirection: Axis.horizontal),
        ],
        controller: tabController,
        scrollDirection: Axis.vertical,
      ),
    ),
  ],
)

5. Cache Extent

Manage the extent of pages cached to optimize performance:

ExtendedTabBarView(
  children: [
    List(Tab0),
    List(Tab1),
    List(Tab2),
    List(Tab3),
  ],
  controller: tabController2,
  link: true,
  cacheExtent: 1,
)

6. Managing Pointer Events

Prevent user interactions while the tabs are scrolling:

ExtendedTabBarView(
  children: [
    List(Tab0),
    List(Tab1),
    List(Tab2),
    List(Tab3),
  ],
  controller: tabController2,
  shouldIgnorePointerWhenScrolling: false,
  cacheExtent: 1,
)

Troubleshooting Tips

  • If you encounter issues with scrolling, ensure you are using the correct scrollDirection setting.
  • Check if the link parameter is set properly; it should be true to allow alerts across tabs.
  • Make sure your controller instances are correctly initialized.
  • If your widgets are not responding correctly, adjust the shouldIgnorePointerWhenScrolling setting.

For more insights, updates, or to collaborate on AI development projects, stay connected with fxis.ai.

Conclusion

At fxis.ai, we believe that such advancements are crucial for the future of AI, as they enable more comprehensive and effective solutions. Our team is continually exploring new methodologies to push the envelope in artificial intelligence, ensuring that our clients benefit from the latest technological innovations.

Stay Informed with the Newest F(x) Insights and Blogs

Tech News and Blog Highlights, Straight to Your Inbox