68

Beautiful Tabs with Xamarin Community Toolkit TabView | Xamarin Blog

 3 years ago
source link: https://devblogs.microsoft.com/xamarin/xamarin-community-toolkit-tabview/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
Beautiful Tabs with Xamarin Community Toolkit TabView

Beautiful Tabs with Xamarin Community Toolkit TabView

Gerald Versluis

Gerald

February 24th, 2021

One of the hardest parts of apps to customize is the tab bar. To overcome this, we’ve added the TabView to the Xamarin Community Toolkit. With the TabView you have full control over the look-and-feel of the tab bar. In this blogpost we’ll learn what it’s all about.

Xamarin.Forms TabbedPage

The way to implement a tab bar in Xamarin.Forms is by using a TabbedPage. This works great and maps to the native equivalents on all platforms supported, but that is just the thing: it uses the native look and feel. Over the years we’ve surfaced more APIs that allow you to style the tab bar more, but the native platforms kept limiting us. There was a big ask for having a bit action button floating on that tab bar or being able to scroll through tabs, have animations, and more!

To be able to provide you with all the above, and more, there is now… TabView!

TabView: All You’ve Ever Wanted from a Tab Bar

By creating a tab bar from all Xamarin.Forms elements a whole new world opens. We’re able to bind items to tabs, scroll through them (both the pages as the actual tabs!), have animations, badges, and most of all… We can implement that big, floating, rounded action button. The TabView is available in the Xamarin Community Toolkit, today! But before you go off and install it right away, let me show you a couple of the cool things it can do.

Basic Usage

Basic usage of the TabView looks like below. You can already see so many options that are not available on the default tab bar. Placement top or bottom, background color, specify a height, enable an indicator and give it a color. It’s crazy.

If we look a little bit closer, we see that we have a TabView at the root and inside of the you’ll need to use TabViewItem. Those items even have more properties to customize. But more importantly; inside of these items you will specify the content. So, in practice, the TabViewItems will act as your actual tabs.


<Grid>
        <xct:TabView
                TabStripPlacement="Bottom"
                TabStripBackgroundColor="Blue"
                TabStripHeight="60"
                TabIndicatorColor="Yellow"
                TabContentBackgroundColor="Yellow">

                <xct:TabViewItem
                    Icon="triangle.png"
                    Text="Tab 1"
                    TextColor="White"
                    TextColorSelected="Yellow"
                    FontSize="12">
                    <Grid 
                        BackgroundColor="Gray">
                        <Label
                            HorizontalOptions="Center"
                            VerticalOptions="Center"
                            Text="TabContent1" />
                    </Grid>
                </xct:TabViewItem>

                <xct:TabViewItem
                    Icon="circle.png"
                    Text="Tab 2"
                    TextColor="White"
                    TextColorSelected="Yellow"
                    FontSize="12">
                    <Grid>
                        <Label    
                            HorizontalOptions="Center"
                            VerticalOptions="Center"
                            Text="TabContent2" />
                    </Grid>
                </xct:TabViewItem>
        </xct:TabView>
  </Grid>

When running the above code, it will show up like in the screenshot below.

See this full sample code in context (or run it!) in the Xamarin Community Toolkit sample app.

TabView With Action Button

I’ve already mentioned it: the floating action button that looks so fancy in all those designs. You can see an example in the screenshot below.

To achieve this, we can use the following code. This is again taken from an example in the Xamarin Community Toolkit sample app. The code has been adapted to show just the crucial things here.


        <xct:TabView
                TabStripPlacement="Bottom"
                TabStripBackgroundColor="Blue"
                TabStripHeight="60"
                TabIndicatorColor="Yellow"
                TabContentBackgroundColor="Yellow">

                <!-- First TabViewItem -->

                <xct:TabViewItem
                    Text="Tab 2"   
                    Icon="circle.png"
                    ControlTemplate="{StaticResource FabTabItemTemplate}"
                    Style="{StaticResource TabItemStyle}"
                    TabTapped="OnFabTabTapped" />

                <!-- Third TabViewItem -->
        </xct:TabView>

The thing you might notice about this code is that the middle action button is just another TabViewItem. But by not assigning any content and instead assigning an event to the TabTapped property, you suddenly gain a button instead of another tab. Another thing that stands out is that you can use a ControlTemplate to style the TabViewItem any way you want. I’ll admit that the tabs shown in this post might need a bit more styling…

What About Lazy Loading?

That is a question we hear a lot, and with good reason! Lazy loading is not built into the TabView directly, however, also in the Xamarin Community Toolkit, we have the LazyView. With LazyView you can make any view lazy loading, including the ones used in TabView. LazyView isn’t out in stable yet at the time of writing this blog but will be part of version 1.1 and available in the nightly pre-release versions.

And Much, Much More…

I wish I could go over all the great stuff that is in the TabView, but where’s the fun in that? I invite you to go give it a try yourself and let us know. If you want to learn more, make sure to go check out the Docs page, the sample app that we have for the Xamarin Community Toolkit or the video down below where I talk with Javier about all the things that you can do with this.

I can’t wait to see what beautiful designs you can produce!

See it in Action!

If you want to see the TabView in action, right now, check out the video of the Xamarin Show below. In this episode I have Javier as my guest who shows everything that is possible.

Gerald Versluis

Senior Software Engineer, Xamarin Community Toolkit

Follow


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK