RadBusyIndicator
Represents a sophisticated loading indicator control that provides visual feedback to users during long-running operations. The RadBusyIndicator offers a rich collection of built-in animations and extensive customization options to create engaging loading experiences that keep users informed and engaged while content is being processed.
The RadBusyIndicator is designed to enhance user experience by providing clear visual feedback during asynchronous operations such as data loading, file processing, network requests, or any time-consuming tasks. It automatically manages the display of loading animations and can optionally dim or hide underlying content to focus user attention on the loading state.
Key Features:
- Rich Animation Library: 10 built-in animation types ranging from simple spinners to complex geometric patterns
- Custom Animation Support: Create your own animations using the flexible RadAnimation system
- Content Management: Automatically dim or hide content while busy, with customizable opacity levels
- Flexible Content Templates: Use custom templates for busy content including text, images, and complex layouts
- Responsive Design: Automatically adapts to different screen sizes and orientations
- Theme Integration: Seamlessly integrates with application themes and supports custom styling
Animation Customization:
- Size Control: Customize animation dimensions with AnimationContentWidthRequest and AnimationContentHeightRequest
- Color Theming: Apply custom colors to match your application's brand and design
- Performance Optimized: Hardware-accelerated animations for smooth performance across all platforms
Perfect for scenarios including data loading screens, form submission feedback, file upload/download progress, authentication processes, and any situation where users need clear indication that the application is actively working on their request. The control automatically handles platform-specific rendering optimizations to ensure consistent performance across iOS, Android, Windows, and macOS.
Definition
Namespace:Telerik.Maui.Controls
Assembly:Telerik.Maui.Controls.dll
Syntax:
public class RadBusyIndicator : RadLayout
Inheritance: objectRadLayoutRadBusyIndicator
Derived Classes:
Example:
Basic usage with default animation:
<telerik:RadBusyIndicator IsBusy="{Binding IsLoading}"
AnimationType="Animation1" />
Custom styling with busy content:
<telerik:RadBusyIndicator IsBusy="{Binding IsProcessing}"
AnimationType="Animation5"
AnimationContentColor="#FF6B35"
ContentUnderOpacity="0.3">
<telerik:RadBusyIndicator.BusyContent>
<StackLayout>
<Label Text="Processing your request..." HorizontalOptions="Center" />
<Label Text="Please wait..." FontSize="12" TextColor="Gray" HorizontalOptions="Center" />
</StackLayout>
</telerik:RadBusyIndicator.BusyContent>
<telerik:RadBusyIndicator.Content>
<!-- Your main content here -->
</telerik:RadBusyIndicator.Content>
</telerik:RadBusyIndicator>
Custom animation with pulsing busy text:
<telerik:RadBusyIndicator IsBusy="True" AnimationType="Custom">
<telerik:RadBusyIndicator.BusyContent>
<Label x:Name="thinkingLabel" Text="Thinking" HorizontalOptions="Center" />
</telerik:RadBusyIndicator.BusyContent>
<telerik:RadBusyIndicator.Animations>
<telerik:RadDoubleAnimation Target="{Reference thinkingLabel}"
PropertyPath="Opacity"
From="0.35"
To="1"
Duration="700"
AutoReverse="True"
RepeatForever="True" />
</telerik:RadBusyIndicator.Animations>
</telerik:RadBusyIndicator>
Constructors
Initializes a new instance of the RadBusyIndicator class with default settings. Creates a ready-to-use busy indicator with platform-optimized default animation and styling.
public RadBusyIndicator()
Fields
AnimationContentColorProperty
BindableProperty
Identifies the AnimationContentColor bindable property.
public static readonly BindableProperty AnimationContentColorProperty
AnimationContentHeightRequestProperty
BindableProperty
Identifies the AnimationContentHeightRequest bindable property.
public static readonly BindableProperty AnimationContentHeightRequestProperty
AnimationContentWidthRequestProperty
BindableProperty
Identifies the AnimationContentWidthRequest bindable property.
public static readonly BindableProperty AnimationContentWidthRequestProperty
AnimationTypeProperty
BindableProperty
Identifies the AnimationType bindable property.
public static readonly BindableProperty AnimationTypeProperty
BusyContentProperty
BindableProperty
Identifies the BusyContent bindable property.
public static readonly BindableProperty BusyContentProperty
BusyContentTemplateProperty
BindableProperty
Identifies the BusyContentTemplate bindable property.
public static readonly BindableProperty BusyContentTemplateProperty
ContentProperty
BindableProperty
Identifies the Content bindable property.
public static readonly BindableProperty ContentProperty
ContentUnderOpacityProperty
BindableProperty
Identifies the ContentUnderOpacity bindable property.
public static readonly BindableProperty ContentUnderOpacityProperty
IsBusyProperty
BindableProperty
Identifies the IsBusy bindable property.
public static readonly BindableProperty IsBusyProperty
Properties
Gets or sets the color of the animation content elements. This property allows you to customize the visual appearance of the loading animation to match your application's theme and branding.
public Color AnimationContentColor { get; set; }
Gets or sets the requested height of the animation content in device-independent units. This property controls the vertical size of the animated loading indicator. Use -1 for automatic sizing based on the animation type.
public double AnimationContentHeightRequest { get; set; }
Gets or sets the requested width of the animation content in device-independent units. This property controls the horizontal size of the animated loading indicator. Use -1 for automatic sizing based on the animation type.
public double AnimationContentWidthRequest { get; set; }
Gets a collection of custom RadAnimation objects used when AnimationType is set to Custom. Add multiple RadAnimation objects to create complex, layered animations with combined effects like rotation, scaling, and translation.
public Collection<RadAnimation> Animations { get; }
Gets or sets the animation style used to display the loading indicator. Choose from 10 built-in animation types (Animation1-Animation10) or use Custom to define your own animations through the Animations collection.
public AnimationType AnimationType { get; set; }
BusyContent
View
Gets or sets the custom content displayed alongside the loading animation when the indicator is in a busy state. Use this property to show informative messages, progress details, or any custom UI elements during loading operations.
public View BusyContent { get; set; }
BusyContentTemplate
ControlTemplate
Gets or sets the control template used to define the layout and appearance of the busy content. This template provides complete control over how the busy state is presented, allowing for sophisticated loading screens and layouts.
public ControlTemplate BusyContentTemplate { get; set; }
Content
View
Gets or sets the main content that is displayed when the busy indicator is not in a busy state. This content is automatically managed by the control, being dimmed or hidden based on the IsBusy state and ContentUnderOpacity settings.
public View Content { get; set; }
Gets or sets a value indicating whether the busy indicator is currently in a busy state. When true, the loading animation and busy content are displayed while the main content is dimmed or hidden according to ContentUnderOpacity.
public bool IsBusy { get; set; }
Methods
Creates the layout manager for this layout.
protected override ILayoutManager CreateLayoutManager()
ILayoutManager
An instance of RadLayoutManager that manages the layout of child elements.
Overrides:
protected override void OnBindingContextChanged()