Contents
- 1 Information
- 1.1 Frame to Border
- 1.2 LayoutOptions with "...AndExpand"
- 1.3 GlyphLabel and Styles
- 1.4 SfTabView Virtualization
- 1.5 Swipe Menu Icons on Android
- 1.6 Color Style Changes
- 1.7 Strikethrough Converter
- 1.8 Button Disabled Trigger
- 1.9 TapGestureRecognizer Replacement
- 1.10 TapGestureRecognizer and Swipe Conflict
- 1.11 Navigation in UBIKChildItem
- 2 Recommended
- 3 Highly Recommended
- 4 Mandatory
- 5 SfTabView
- 6 OnPlatform + OnIdiom backup
Information
Frame to Border
Use Border instead of Frame. Frame is deprecated in MAUI. Use Border with `Stroke` instead of `BorderColor`.
Xamarin | MAUI |
---|---|
<Frame ... /> | <Border ... /> |
LayoutOptions with "...AndExpand"
Replace "...AndExpand" with Grid layout. Horizontal/VerticalOptions ending in "...AndExpand" are deprecated. Use Grid with `ColumnDefinition Width="*"` for expansion.
GlyphLabel and Styles
Use Label with new styles. Custom controls like `GlyphLabel` are no longer needed. Use `Label` with styles like `UBIKSymbolText`.
Xamarin | MAUI |
---|---|
controls:GlyphLabel | Label with UBIKSymbolText style |
SfTabView Virtualization
Enable virtualization. Add `EnableVirtualization="True"` to all SfTabView instances or styles.
Swipe Menu Icons on Android
Refactor swipe templates and label styles. Icons in swipe menus were truncated on Android. Fixed via refactoring.
Color Style Changes
Dark theme adjustments. Changes to color styles may affect appearance. Review usage of `UBIKDarkThemeColor`, `UBIKDarkTextColor`, etc.
Strikethrough Converter
Use `TextDecorations="Strikethrough"` instead of converter.
Xamarin | MAUI |
---|---|
Text="{Binding ..., Converter={StaticResource StrikethroughConverter}}" | Text="{Binding ...}" TextDecorations="Strikethrough" |
Button Disabled Trigger
Add trigger for disabled buttons. Maui buttons don’t visually change when disabled. Add trigger to style.
TapGestureRecognizer Replacement
Use TappedBehavior instead. TapGestureRecognizer now intercepts taps. Use `TappedBehavior` to avoid conflicts.
Xamarin | MAUI |
---|---|
<... .GestureRecognizers><TapGestureRecognizer Command="{Binding ...}" /></... .GestureRecognizers> | <... .Behaviors><behaviors:TappedBehavior><behaviors:InvokeCommandAction Command="{Binding ...}" /></behaviors:TappedBehavior></... .Behaviors> |
TapGestureRecognizer and Swipe Conflict
Remove TapGestureRecognizer from root Grid. TapGestureRecognizer blocks swipe behavior. Remove it and adapt parent list to trigger navigation.
Use EventHandlerBehavior for navigation.
Xamarin | MAUI |
---|---|
[none] | <controls:SfListViewExt.Behaviors><behaviors:EventHandlerBehavior EventName="ItemTapped"><behaviors:InvokeCommandAction Command="{Binding AppStatus.RootList.Items[0].NavigateToChildrenCommand}" /></behaviors:EventHandlerBehavior></controls:SfListViewExt.Behaviors> |