TabbedPage Class

Definition

MultiPage<T> that displays an array of tabs across the top of the screen, each of which loads content onto the screen.

[Xamarin.Forms.RenderWith(typeof(Xamarin.Forms.Platform._TabbedPageRenderer))]
public class TabbedPage : Xamarin.Forms.MultiPage<Xamarin.Forms.Page>, Xamarin.Forms.IElementConfiguration<Xamarin.Forms.TabbedPage>
type TabbedPage = class
    inherit MultiPage<Page>
    interface IElementConfiguration<TabbedPage>
Inheritance
Attributes
Implements

Remarks

The user interface of a tabbed page consists of a list of tabs and a larger detail area. On iOS, the list of tabs appears at the bottom of the screen, and the detail area is above. On Android and Windows phones, the tabs appear across the top of the screen. The user can scroll the collection of tabs that are across the top of the screen if that collection is too large to fit on one screen.

App developers can create tabbed pages in either of two ways. First, application developers can assign a list of objects of a single class, or its subclasses, to the ItemsSource property and assign a DataTemplate to the ItemTemplate property to return pages for objects of the least derived type. Second, app developers can add a succession of Page objects to the Children property. Both methods are shown in the code examples below.

The following example code, adapted for brevity from the FormsGallery sample that can be found on the Sample Applications page, shows how to display data of a specific type by assigning a DataTemplate to the ItemTemplate property. Note how NamedColorPage gets its color by binding its ColorProperty field.


using System;
using Xamarin.Forms;
    
namespace MinimalTabbed
{
    class TabbedPageDemoPage : TabbedPage
    {
        public TabbedPageDemoPage ()
        {
            this.Title = "TabbedPage";
    
            this.ItemsSource = new NamedColor[] {
                new NamedColor ("Red", Color.Red),
                new NamedColor ("Yellow", Color.Yellow),
                new NamedColor ("Green", Color.Green),
                new NamedColor ("Aqua", Color.Aqua),
                new NamedColor ("Blue", Color.Blue),
                new NamedColor ("Purple", Color.Purple)
            };
    
            this.ItemTemplate = new DataTemplate (() => { 
                return new NamedColorPage (); 
            });
        }
    }
    
    // Data type:
    class NamedColor
    {
        public NamedColor (string name, Color color)
        {
            this.Name = name;
            this.Color = color;
        }
    
        public string Name { private set; get; }
    
        public Color Color { private set; get; }
    
        public override string ToString ()
        {
            return Name;
        }
    }
    
    // Format page
    class NamedColorPage : ContentPage
    {
        public NamedColorPage ()
        {
            // This binding is necessary to label the tabs in
            // the TabbedPage.
            this.SetBinding (ContentPage.TitleProperty, "Name");
            // BoxView to show the color.
            BoxView boxView = new BoxView {
                WidthRequest = 100,
                HeightRequest = 100,
                HorizontalOptions = LayoutOptions.Center
            };
            boxView.SetBinding (BoxView.ColorProperty, "Color");
    
            // Build the page
            this.Content = boxView;
        }
    }
}
    

The example below creates a tabbed view with two ContentPage instances.


class TabbedPageDemoPage2 : TabbedPage
{
    public TabbedPageDemoPage2 ()
    {
        this.Title = "TabbedPage";
        this.Children.Add (new ContentPage 
            {
                Title = "Blue",
                Content = new BoxView
                {
                    Color = Color.Blue,
                    HeightRequest = 100f,
                    VerticalOptions = LayoutOptions.Center
                },
            }
        );
        this.Children.Add (new ContentPage {
            Title = "Blue and Red",
            Content = new StackLayout {
                Children = {
                    new BoxView { Color = Color.Blue },
                    new BoxView { Color = Color.Red}
                }
            }
        });
    }
}

Constructors

TabbedPage()

Creates a new TabbedPage element with default values.

Fields

ActionSheetSignalName

This method is for internal use.

(Inherited from Page)
AlertSignalName

This method is for internal use.

(Inherited from Page)
BarBackgroundColorProperty

Backing store for the BarBackgroundColor property.

BarTextColorProperty

Backing store for the BarTextColor property.

BusySetSignalName

This method is for internal use.

(Inherited from Page)
SelectedTabColorProperty

The backing store for the SelectedTabColor field.

UnselectedTabColorProperty

The backing store for the UnselectedTabColor field.

Properties

AnchorX

Gets or sets the X component of the center point for any transform, relative to the bounds of the element. This is a bindable property.

(Inherited from VisualElement)
AnchorY

Gets or sets the Y component of the center point for any transform, relative to the bounds of the element. This is a bindable property.

(Inherited from VisualElement)
AutomationId

Gets or sets a value that allows the automation framework to find and interact with this element.

(Inherited from Element)
BackgroundColor

Gets or sets the color which will fill the background of a VisualElement. This is a bindable property.

(Inherited from VisualElement)
BackgroundImage

Identifies the image used as a background for the Page.

(Inherited from Page)
BackgroundImageSource (Inherited from Page)
BarBackgroundColor

Gets or sets the background color of the bar.

BarTextColor

Gets or sets the color of text on the bar.

Batched

For internal use by the Xamarin.Forms platform.

(Inherited from VisualElement)
Behaviors

Gets the list of Behavior associated to this element. This is a bindable propery.

(Inherited from VisualElement)
BindingContext

Gets or sets object that contains the properties that will be targeted by the bound properties that belong to this BindableObject.

(Inherited from BindableObject)
Bounds

Gets the bounds of the element.

(Inherited from VisualElement)
Children

Gets an IList<Page> of child elements of the MultiPage.

(Inherited from MultiPage<T>)
class (Inherited from NavigableElement)
ClassId

Gets or sets a value used to identify a collection of semantically similar elements.

(Inherited from Element)
ContainerArea

For internal use by the Xamarin.Forms platform.

(Inherited from Page)
CurrentPage

Gets or sets the currently selected page.

(Inherited from MultiPage<T>)
DisableLayout

For internal use by the Xamarin.Forms platform.

(Inherited from VisualElement)
EffectControlProvider

For internal use by the Xamarin.Forms platform.

(Inherited from Element)
Effects

A list of the effects that are applied to this item.

(Inherited from Element)
FlowDirection

Gets or sets the layout flow direction.

(Inherited from VisualElement)
Height

Gets the current rendered height of this element. This is a read-only bindable property.

(Inherited from VisualElement)
HeightRequest

Gets or sets the desired height override of this element.

(Inherited from VisualElement)
Icon

Resource identifier for the Page's associated icon.

(Inherited from Page)
IconImageSource (Inherited from Page)
Id

Gets a value that can be used to uniquely identify an element through the run of an application.

(Inherited from Element)
IgnoresContainerArea

For internal use by the Xamarin.Forms platform.

(Inherited from Page)
InputTransparent

Gets or sets a value indicating whether this element should be involved in the user interaction cycle. This is a bindable property.

(Inherited from VisualElement)
InternalChildren

For internal use by the Xamarin.Forms platform.

(Inherited from Page)
IsBusy

Marks the Page as busy. This will cause the platform specific global activity indicator to show a busy state.

(Inherited from Page)
IsEnabled

Gets or sets a value indicating whether this element is enabled in the user interface. This is a bindable property.

(Inherited from VisualElement)
IsFocused

Gets a value indicating whether this element is focused currently. This is a bindable property.

(Inherited from VisualElement)
IsInNativeLayout

For internal use by the Xamarin.Forms platform.

(Inherited from VisualElement)
IsNativeStateConsistent

For internal use by the Xamarin.Forms platform.

(Inherited from VisualElement)
IsPlatformEnabled

For internal use by the Xamarin.Forms platform.

(Inherited from VisualElement)
IsTabStop

Gets or sets a value that indicates whether this element is included in tab navigation. This is a bindable property.

(Inherited from VisualElement)
IsVisible

Gets or sets a value that determines whether this elements should be part of the visual tree or not. This is a bindable property.

(Inherited from VisualElement)
ItemsSource

The source for the items to be displayed.

(Inherited from MultiPage<T>)
ItemTemplate

The template for displaying items.

(Inherited from MultiPage<T>)
LogicalChildren

For internal use by the Xamarin.Forms platform.

(Inherited from Element)
MinimumHeightRequest

Gets or sets a value which overrides the minimum height the element will request during layout.

(Inherited from VisualElement)
MinimumWidthRequest

Gets or sets a value which overrides the minimum width the element will request during layout.

(Inherited from VisualElement)
Navigation (Inherited from NavigableElement)
NavigationProxy (Inherited from NavigableElement)
Opacity

Gets or sets the opacity value applied to the element when it is rendered. This is a bindable property.

(Inherited from VisualElement)
Padding

The space between the content of the Page and it's border.

(Inherited from Page)
Parent

Gets or sets the parent element of the element.

(Inherited from Element)
ParentView

Gets the element which is the closest ancestor of this element that is a VisualElement.

(Inherited from Element)
Platform (Inherited from Element)
RealParent

For internal use by the Xamarin.Forms platform.

(Inherited from Element)
Resources

Gets or sets the local resource dictionary.

(Inherited from VisualElement)
Rotation

Gets or sets the rotation about the Z-axis (affine rotation) when the element is rendered.

(Inherited from VisualElement)
RotationX

Gets or sets the rotation about the X-axis (perspective rotation) when the element is rendered.

(Inherited from VisualElement)
RotationY

Gets or sets the rotation about the Y-axis (perspective rotation) when the element is rendered.

(Inherited from VisualElement)
Scale

Gets or sets the scale factor applied to the element.

(Inherited from VisualElement)
ScaleX

Gets or sets a scale value to apply to the X direction.

(Inherited from VisualElement)
ScaleY

Gets or sets a scale value to apply to the Y direction.

(Inherited from VisualElement)
SelectedItem

The currently selected item.

(Inherited from MultiPage<T>)
SelectedTabColor
Style (Inherited from NavigableElement)
StyleClass (Inherited from NavigableElement)
StyleId

Gets or sets a user defined value to uniquely identify the element.

(Inherited from Element)
TabIndex (Inherited from VisualElement)
Title

The Page's title.

(Inherited from Page)
ToolbarItems

A set of ToolbarItems, implemented in a platform-specific manner.

(Inherited from Page)
TranslationX

Gets or sets the X translation delta of the element.

(Inherited from VisualElement)
TranslationY

Gets or sets the Y translation delta of the element.

(Inherited from VisualElement)
Triggers

Gets the list of Trigger associated to this element. This is a bindable property.

(Inherited from VisualElement)
UnselectedTabColor
Visual (Inherited from VisualElement)
Width

Gets the current rendered width of this element. This is a read-only bindable property.

(Inherited from VisualElement)
WidthRequest

Gets or sets the desired width override of this element.

(Inherited from VisualElement)
X

Gets the current X position of this element. This is a read-only bindable property.

(Inherited from VisualElement)
Y

Gets the current Y position of this element. This is a read-only bindable property.

(Inherited from VisualElement)

Methods

ApplyBindings()

Apply the bindings to BindingContext.

(Inherited from BindableObject)
BatchBegin()

Signals the start of a batch of changes to the elements properties.

(Inherited from VisualElement)
BatchCommit()

Signals the end of a batch of commands to the element and that those commands should now be committed.

(Inherited from VisualElement)
ChangeVisualState()

For internal use by the Xamarin.Forms platform.

(Inherited from VisualElement)
ClearValue(BindableProperty)

Clears any value set by SetValue for property.

(Inherited from BindableObject)
ClearValue(BindablePropertyKey)

Clears any value set by SetValue for the property that is identified by propertyKey.

(Inherited from BindableObject)
CreateDefault(Object)

Creates a default page, suitable for display in thisTabbedPage page, for an object.

Descendants()

For internal use by the Xamarin.Forms platform.

(Inherited from Element)
DisplayActionSheet(String, String, String, String[])

Displays a native platform action sheet, allowing the application user to choose from several buttons.

(Inherited from Page)
DisplayAlert(String, String, String)

Presents an alert dialog to the application user with a single cancel button.

(Inherited from Page)
DisplayAlert(String, String, String, String)

Presents an alert dialog to the application user with an accept and a cancel button.

(Inherited from Page)
EffectIsAttached(String)

For internal use by the Xamarin.Forms platform.

(Inherited from Element)
FindByName(String)

Returns the element that has the specified name.

(Inherited from Element)
Focus()

Attemps to set focus to this element.

(Inherited from VisualElement)
ForceLayout()

Forces the Page to perform a layout pass.

(Inherited from Page)
GetPageByIndex(Int32)

For internal use by the Xamarin.Forms platform.

(Inherited from MultiPage<T>)
GetSizeRequest(Double, Double)

Returns the SizeRequest of the element. Calling this method begins the measure pass of a layout cycle.

(Inherited from VisualElement)
GetValue(BindableProperty)

Returns the value that is contained in the BindableProperty.

(Inherited from BindableObject)
GetValues(BindableProperty, BindableProperty)

For internal use by the Xamarin.Forms platform.

(Inherited from BindableObject)
GetValues(BindableProperty, BindableProperty, BindableProperty)

For internal use by the Xamarin.Forms platform.

(Inherited from BindableObject)
InvalidateMeasure()

Method that is called to invalidate the layout of this VisualElement. Raises the MeasureInvalidated event.

(Inherited from VisualElement)
InvalidateMeasureNonVirtual(InvalidationTrigger)

For internal use by the Xamarin.Forms platform.

(Inherited from VisualElement)
IsSet(BindableProperty)

Returns true if the target property exists and has been set.

(Inherited from BindableObject)
Layout(Rectangle)

Updates the bounds of the element during the layout cycle.

(Inherited from VisualElement)
LayoutChildren(Double, Double, Double, Double)

Lays out children Elements into the specified area.

(Inherited from Page)
Measure(Double, Double, MeasureFlags)

Returns the minimum size that a visual element needs in order to be displayed on the device.

(Inherited from VisualElement)
NativeSizeChanged()

For internal use by the Xamarin.Forms platform.

(Inherited from VisualElement)
On<T>()

Returns the platform-specific instance of this TabbedPage, on which a platform-specific method may be called.

OnAppearing()

When overridden, allows application developers to customize behavior immediately prior to the Page becoming visible.

(Inherited from Page)
OnBackButtonPressed()

Event that is raised when the back button is pressed.

(Inherited from MultiPage<T>)
OnBindingContextChanged()

Invoked whenever the binding context of the Page changes. Override this method to add class handling for this event.

(Inherited from Page)
OnChildAdded(Element)

Called when a child has been added to the MultiPage<T>.

(Inherited from MultiPage<T>)
OnChildMeasureInvalidated(Object, EventArgs)

Indicates that the preferred size of a child Element has changed.

(Inherited from Page)
OnChildRemoved(Element)

Application developers can override this method to respond when a child is removed.

(Inherited from VisualElement)
OnChildrenReordered()

Invoked whenever the ChildrenReordered event is about to be emitted. Implement this method to add class handling for this event.

(Inherited from VisualElement)
OnCurrentPageChanged()

Raises the CurrentPageChanged event.

(Inherited from MultiPage<T>)
OnDisappearing()

When overridden, allows the application developer to customize behavior as the Page disappears.

(Inherited from Page)
OnMeasure(Double, Double)

Method that is called when a layout measurement happens.

(Inherited from VisualElement)
OnPagesChanged(NotifyCollectionChangedEventArgs)

Called when the pages of the MultiPage<T> have been changed.

(Inherited from MultiPage<T>)
OnParentSet()

Called when the Page's Parent property has changed.

(Inherited from Page)
OnPropertyChanged(String)

Called when a bindable property has changed.

(Inherited from MultiPage<T>)
OnPropertyChanging(String)

Call this method from a child class to notify that a change is going to happen on a property.

(Inherited from BindableObject)
OnSizeAllocated(Double, Double)

Indicates that the Page has been assigned a size.

(Inherited from Page)
OnSizeRequest(Double, Double)

This method is called during the measure pass of a layout cycle to get the desired size of an element.

(Inherited from VisualElement)
OnTabIndexPropertyChanged(Int32, Int32) (Inherited from VisualElement)
OnTabStopPropertyChanged(Boolean, Boolean) (Inherited from VisualElement)
RemoveBinding(BindableProperty)

Removes a previously set binding.

(Inherited from BindableObject)
RemoveDynamicResource(BindableProperty)

Removes a previously set dynamic resource

(Inherited from Element)
SendAppearing()

For internal use by the Xamarin.Forms platform.

(Inherited from Page)
SendBackButtonPressed()

Calls OnBackButtonPressed().

(Inherited from Page)
SendDisappearing()

For internal use by the Xamarin.Forms platform.

(Inherited from Page)
SetBinding(BindableProperty, BindingBase)

Assigns a binding to a property.

(Inherited from BindableObject)
SetDynamicResource(BindableProperty, String)

Sets the BindableProperty property of this element to be updated via the DynamicResource with the provided key.

(Inherited from Element)
SetupContent(T, Int32)

When overridden in a derived class, performs initialization of content.

(Inherited from MultiPage<T>)
SetValue(BindableProperty, Object)

Sets the value of the specified property.

(Inherited from BindableObject)
SetValue(BindablePropertyKey, Object)

Sets the value of the propertyKey.

(Inherited from BindableObject)
SetValueCore(BindableProperty, Object, SetValueFlags)

For internal use by the Xamarin.Forms platform.

(Inherited from BindableObject)
SetValueFromRenderer(BindableProperty, Object)

For internal use by the Xamarin.Forms platform.

(Inherited from Element)
SetValueFromRenderer(BindablePropertyKey, Object)

For internal use by the Xamarin.Forms platform.

(Inherited from Element)
SizeAllocated(Double, Double)

SizeAllocated is called during a layout cycle to signal the start of a sub-tree layout.

(Inherited from VisualElement)
TabIndexDefaultValueCreator() (Inherited from VisualElement)
TabStopDefaultValueCreator() (Inherited from VisualElement)
UnapplyBindings()

Unapplies all previously set bindings.

(Inherited from BindableObject)
Unfocus()

Unsets focus to this element.

(Inherited from VisualElement)
UnhookContent(T)

Application developers override this method to unregister event handlers for items that they registered in SetupContent(T, Int32).

(Inherited from MultiPage<T>)
UpdateChildrenLayout()

Requests that the children Elements of the Page update their layouts.

(Inherited from Page)

Events

Appearing

Indicates that the Page is about to appear.

(Inherited from Page)
BatchCommitted

For internal use by the Xamarin.Forms platform.

(Inherited from VisualElement)
BindingContextChanged

Raised whenever the BindingContext property changes.

(Inherited from BindableObject)
ChildAdded

Occurs whenever a child element is added to the element.

(Inherited from Element)
ChildRemoved

Occurs whenever a child element is removed from the element.

(Inherited from Element)
ChildrenReordered

Occurs when the Children of a VisualElement have been re-ordered.

(Inherited from VisualElement)
CurrentPageChanged

Raised when the CurrentPage property changes.

(Inherited from MultiPage<T>)
DescendantAdded

Occurs whenever a child element is added to the elements subtree.

(Inherited from Element)
DescendantRemoved

Occurs whenever a child element is removed from the elements subtree.

(Inherited from Element)
Disappearing

Indicates that the Page is about to cease displaying.

(Inherited from Page)
FocusChangeRequested

For internal use by the Xamarin.Forms platform.

(Inherited from VisualElement)
Focused

Occurs when the element receives focus.

(Inherited from VisualElement)
LayoutChanged

Raised when the layout of the Page has changed.

(Inherited from Page)
MeasureInvalidated

Event that is raised when the layout of a visual element is invalidated.

(Inherited from VisualElement)
PagesChanged

Raised when the children pages of the MultiPage<T> have changed.

(Inherited from MultiPage<T>)
PlatformSet (Inherited from Element)
PropertyChanged

Raised when a property has changed.

(Inherited from BindableObject)
PropertyChanging

Raised when a property is about to change.

(Inherited from BindableObject)
SizeChanged

Occurs when either the Width or the Height properties change value on this element.

(Inherited from VisualElement)
Unfocused

Occurs when the element loses focus.

(Inherited from VisualElement)

Explicit Interface Implementations

IDynamicResourceHandler.SetDynamicResource(BindableProperty, String)

For internal use by the Xamarin.Forms platform.

(Inherited from BindableObject)
IElementController.SetValueFromRenderer(BindableProperty, Object)

For internal use by the Xamarin.Forms platform.

(Inherited from Element)
IItemsView<T>.CreateDefault(Object)

For internal use by the Xamarin.Forms platform.

(Inherited from MultiPage<T>)
IItemsView<T>.SetupContent(T, Int32)

For internal use by the Xamarin.Forms platform.

(Inherited from MultiPage<T>)
IItemsView<T>.UnhookContent(T)

For internal use by the Xamarin.Forms platform.

(Inherited from MultiPage<T>)
INameScope.RegisterName(String, Object)

For internal use only.

(Inherited from Element)
IVisualElementController.EffectiveFlowDirection

Gets the effective visual flow direction for the element on the platform, taking into account the locale and logical flow settings.

(Inherited from VisualElement)
IVisualElementController.InvalidateMeasure(InvalidationTrigger)

This method is for internal use.

(Inherited from VisualElement)

Extension Methods

AbortAnimation(IAnimatable, String)

Stops the animation.

Animate(IAnimatable, String, Action<Double>, Double, Double, UInt32, UInt32, Easing, Action<Double,Boolean>, Func<Boolean>)

Sets the specified parameters and starts the animation.

Animate(IAnimatable, String, Action<Double>, UInt32, UInt32, Easing, Action<Double,Boolean>, Func<Boolean>)

Sets the specified parameters and starts the animation.

Animate(IAnimatable, String, Animation, UInt32, UInt32, Easing, Action<Double,Boolean>, Func<Boolean>)

Sets the specified parameters and starts the animation.

Animate<T>(IAnimatable, String, Func<Double,T>, Action<T>, UInt32, UInt32, Easing, Action<T,Boolean>, Func<Boolean>)

Sets the specified parameters and starts the animation.

AnimateKinetic(IAnimatable, String, Func<Double,Double,Boolean>, Double, Double, Action)

Sets the specified parameters and starts the kinetic animation.

AnimationIsRunning(IAnimatable, String)

Returns a Boolean value that indicates whether or not the animation that is specified by handle is running.

SetBinding(BindableObject, BindableProperty, String, BindingMode, IValueConverter, String)

Creates and applies a binding to a property.

SetBinding<TSource>(BindableObject, BindableProperty, Expression<Func<TSource,Object>>, BindingMode, IValueConverter, String)

Creates and applies a binding from an expression.

AncestorToRoot(Page)
FindByName<T>(Element, String)

Returns the instance of type T that has name name in the scope that includes element.

FindNextElement(ITabStopElement, Boolean, IDictionary<Int32,List<ITabStopElement>>, Int32)
GetSortedTabIndexesOnParentPage(VisualElement, Int32)
GetTabIndexesOnParentPage(ITabStopElement, Int32, Boolean)
FadeTo(VisualElement, Double, UInt32, Easing)

Returns a task that performs the fade that is described by the opacity, length, and easing parameters.

LayoutTo(VisualElement, Rectangle, UInt32, Easing)

Returns a task that eases the bounds of the VisualElement that is specified by the view to the rectangle that is specified by the bounds parameter.

RelRotateTo(VisualElement, Double, UInt32, Easing)

Rotates the VisualElement that is specified by view from its current rotation by drotation.

RelScaleTo(VisualElement, Double, UInt32, Easing)

Returns a task that scales the VisualElement that is specified by view from its current scale to dscale.

RotateTo(VisualElement, Double, UInt32, Easing)

Returns a task that performs the rotation that is described by the rotation, length, and easing parameters.

RotateXTo(VisualElement, Double, UInt32, Easing)

Returns a task that skews the Y axis by opacity, taking time length and using easing.

RotateYTo(VisualElement, Double, UInt32, Easing)

Returns a task that skews the X axis by opacity, taking time length and using easing.

ScaleTo(VisualElement, Double, UInt32, Easing)

Returns a task that scales the VisualElement that is specified by view to the absolute scale factor scale.

TranslateTo(VisualElement, Double, Double, UInt32, Easing)

Animates an elements TranslationX and TranslationY properties from their current values to the new values. This ensures that the input layout is in the same position as the visual layout.

HasVisualStateGroups(VisualElement)

Returns true if element has one or more visual state groups associated with it. Otherwise, returns false.

Applies to