Article image Navigation and Routing in Flutter: Tabbed Browsing

7.7. Navigation and Routing in Flutter: Tabbed Browsing

Page 92 | Listen in audio

Navigation and routing are vital elements in any application as they allow users to move between different pages or screens. In Flutter, navigation and routing is mainly handled by the 'Navigator' widget and the 'PageRoute'. However, for a more personalized and streamlined experience, Flutter also offers tabbed browsing. Let's explore this in detail.

Understanding Tabbed Browsing in Flutter

Tabbed navigation is a common approach to organizing the user interface in mobile apps. It allows users to switch between different screens or sections of an application by tapping an icon or tab title at the bottom or top of the screen. In Flutter, this is facilitated through a set of widgets, including the 'TabController', 'TabBar' and 'TabBarView'.

TabController

The TabController is an object that coordinates the selection of tabs and the animation of sliding between tabs. It is normally created once and passed to the 'TabBar' and 'TabBarView' widgets that use it. The TabController can be created using the default constructor or using the 'of' method to retrieve an existing TabController.

TabBar

The TabBar is a widget that displays a horizontal row of tabs. It is usually placed at the top of the screen or at the bottom of the AppBar. Each tab is represented by a widget, which can be an icon, text, or both. When a user taps a tab, the TabBar tells the TabController, which then makes the corresponding tab active.

TabBarView

The TabBarView is a widget that displays the content of the current tab. It uses the TabController to switch between different tabs when the user taps a tab on the TabBar. Each tab in the TabBarView is represented by a widget, which is created when the tab becomes active and destroyed when it is replaced by another tab.

Implementing Tabbed Browsing

To implement tabbed browsing in Flutter, you need to follow these steps:

  1. Create a TabController passing the number of tabs and the vsync, which is normally 'this'.
  2. Create a TabBar and pass the TabController to it. Define tabs using the 'tabs' property and the widgets that represent each tab.
  3. Create a TabBarView and pass the TabController to it. Define the content of each tab using the 'children' property and the widgets representing the content of each tab.
  4. Wrap the TabBar and TabBarView with a Scaffold or AppBar widget to display the TabBar at the top of the screen.

It is important to remember that the TabController, TabBar and TabBarView must be used together to ensure that the tab selection and swiping animation are correctly coordinated.

Conclusion

Tabbing navigation is an effective way to organize the user interface in mobile applications. In Flutter, this is facilitated through a set of widgets that allow you to create a personalized and optimized tabbed browsing experience. With the right knowledge and practice, you can use tabbed browsing to improve the usability and user experience in your Flutter apps.

Now answer the exercise about the content:

What is the role of TabController, TabBar and TabBarView in tabbed navigation in Flutter?

You are right! Congratulations, now go to the next page

You missed! Try again.

Article image Navigation and routing in Flutter: Drawer navigation

Next page of the Free Ebook:

93Navigation and routing in Flutter: Drawer navigation

3 minutes

Earn your Certificate for this Course for Free! by downloading the Cursa app and reading the ebook there. Available on Google Play or App Store!

Get it on Google Play Get it on App Store

+ 6.5 million
students

Free and Valid
Certificate with QR Code

48 thousand free
exercises

4.8/5 rating in
app stores

Free courses in
video, audio and text