SkillAgentSearch skills...

TabStrip

Tab Strip control for Xamarin.Forms

Install / Use

/learn @SkyeHoefling/TabStrip
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

TabStrip for Xamarin.Forms

Tab Strip control for Xamarin.Forms

Screenshots

| iOS | Android | UWP | |---------------------------|-----------------------------|---------------------------| |uwp | uwp |uwp |

Setup

  • Available on NuGet: NuGet
  • Install into your PCL/.NET Standard and Client Projects

Build

Platform Support

TabStrip is available for use in Xamarin.Forms only targetting the following supported platforms.

| Platform | Supported | Version | |------------------|-----------|-------------| | Xamarin.Android | Yes | API 15 + | | Xamarin.iOS | Yes | iOS 10 + | | Xamarin 10 UWP | Yes | 16299 + | | macOS | No | | | linux | No | | | tvOS | No | | | watchOS | No | |

Usage

UWP (Known Issue)

Add CarouselView.FormsPlugin as a nuget reference otherwise it will not work

iOS, Droid and UWP

Initialize the renderers in your iOS and Android projects

Xamarin.Forms.Init();
TabStripRenderer.Init();

XAML:

Add the namespace in the xmlns:

xmlns:plugin="clr-namespace:TabStrip.FormsPlugin.Abstractions;assembly=TabStrip.FormsPlugin.Abstractions"

Add the control:

<plugin:TabStripControl Position="{Binding CurrentPosition}"
                        ItemsSource="{Binding Views}" />

Add the following code to your BindingContext. The ItemsSource property needs to be mapped to an IEnumerable<TabModel> where TabModel is provided in the TabStrip.FormsPlugin.Abstractions namespace.

BindingContext = new 
{
	Views = new ObservableCollection<TabModel>(new [] 
	{
		new TabModel
        {
            Header = new Tuple<View, object>(new HeaderView(), new { Title = "Tab 1" }),
            View = new Tuple<View, object>(new HelloView(), new HelloPageModel())
        },
        new TabModel
        {
            Header = new Tuple<View, object>(new HeaderView(), new { Title = "Tab 2" }),
            View = new Tuple<View, object>(new HelloView(), new HelloPageModel())
        }

	});
};

Bindable Properties

| Property | Description | Default Value | |-------------|-------------------------------------------------------------------------------------------------------------------------------------|----------------------------| | Position | Gets or Sets current tab position of the tab strip. | 0 | | ItemsSource | Gets or Sets the IEnumerable<TabModel> where the TabModel defines the Tab Name and the View/ViewModel relationship for each Tab | null | | ShowArrows | Gets or Sets the bool value that determines if navigation arrows will appear on top of the content area | fakse | | LeftArrow | Gets or Sets the ImageSource for the LeftArrow which is displayed when the tab can navigate left | Embedded Left Arrow Image | | RightArrow | Gets or Sets the ImageSource for the RightArrow which is displayed when the tab can navigate right | Embedded Right Arrow Image |

Roadmap

Minimal Viable Product

  • Implement basic cross-platform Tabstrip that supports Android and iOS via Xamarin.Forms

Windows Support

  • Implement Windows UWP support via Xamarin.Forms

macOS Support

  • Implement macOS support via Xamarin.Forms

linux Support

  • Implement linux support via Xamarin.Forms

Native Support

  • Implement Xamarin Navite support so it can be consumed in a Xamarin Native project instead of Xamarin.Forms. This will require a larger code re-write since it will be using Xamarin.Forms wrappers prior to this release

Created By: @Andrew_Hoefling

History

Xamarin Dependencies

Thanks to other plugin creators to make this plugin possible

License

The MIT License (MIT) see License File

Related Skills

View on GitHub
GitHub Stars27
CategoryDevelopment
Updated3y ago
Forks5

Languages

C#

Security Score

80/100

Audited on Oct 29, 2022

No findings