diff --git a/README.md b/README.md
index 2158764..c51fdf8 100644
--- a/README.md
+++ b/README.md
@@ -47,6 +47,8 @@ Here are some of my samples that were built using this library:
Navbar Animation #2
+List of all samples can be seen [here](./docs/Samples.md).
+
## SimpleToolkit.Core
[](https://www.nuget.org/packages/SimpleToolkit.Core/)
@@ -95,16 +97,31 @@ See [documentation](./docs/SimpleToolkit.SimpleShell) for more information.
*SimpleToolkit.SimpleShell.Controls* is a collection of ready-to-use, navigation-related controls (not only) for `SimpleShell`.
-### Getting Started
+The package currently supports only two controls:
-In order to use *SimpleToolkit.SimpleShell.Controls*, you need to call the `UseSimpleToolkit()` extension method in your `MauiProgram.cs` file:
+- `ListPopover` - popover containing a list of selectable text items
+- `TabBar`
-```csharp
-builder.UseSimpleToolkit();
-```
+All controls can be styled using different design languages. These are currently supported:
+
+- Material 3
+- Cupertino
+- Fluent (WinUI 3)
+
+
+
+
+
+
+
+
-
\ No newline at end of file
+
+
+> I am still not decided if I want to continue and how to develop the `SimpleToolkit.SimpleShell.Controls` package. **The package API is likely to change in the future.** For this reason, this package is still in preview and has poor documentation.
+
+See [documentation](./docs/SimpleToolkit.SimpleShell.Controls) for more information.
\ No newline at end of file
diff --git a/docs/Samples.md b/docs/Samples.md
new file mode 100644
index 0000000..44104bf
--- /dev/null
+++ b/docs/Samples.md
@@ -0,0 +1,39 @@
+# List of Samples Built Using SimpleToolkit
+
+## [Gadget Store App](https://github.com/RadekVyM/Gadgets-Store-App)
+
+**.NET MAUI** implementation of [Gadgets Store App](https://dribbble.com/shots/6983164-Gadgets-Store-App) design by [Sajon](https://dribbble.com/sajon007):
+
+
+
+
+
+## [Navbar Animation #1](https://github.com/RadekVyM/Navbar-Animation-1)
+
+**.NET MAUI** implementation of [Navbar Animation #1](https://dribbble.com/shots/9852644-Navbar-Animation-1) design by [Marie Bernard](https://dribbble.com/marie_brn):
+
+
+
+
+
+
+
+## [Navbar Animation #2](https://github.com/RadekVyM/Navbar-Animation-2)
+
+**.NET MAUI** implementation of [Navbar Animation #2](https://dribbble.com/shots/14122275-Navbar-Animation-2) design by [Marie Bernard](https://dribbble.com/marie_brn):
+
+
+
+
+
+
+
+## [Tab Bar Switches Interaction](https://github.com/RadekVyM/Tab-Bar-Switches-Interaction)
+
+**.NET MAUI** implementation of [Tab Bar Switches Interaction](https://dribbble.com/shots/14028381-Tab-Bar-Switches-Interaction) design by [Ronas IT | UI/UX Team](https://dribbble.com/ronasit):
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/SimpleToolkit.Core/ContentButton.md b/docs/SimpleToolkit.Core/ContentButton.md
index fadf51e..2dffe39 100644
--- a/docs/SimpleToolkit.Core/ContentButton.md
+++ b/docs/SimpleToolkit.Core/ContentButton.md
@@ -34,6 +34,59 @@ Output:
+## Visual states
+
+`ContentButton` provides the same visual states as .NET MAUI `Button` does:
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+Output:
+
+
+
+
+
## Implementation details
The `ContentButton` class is inherited from the .NET MAUI `ContentView` control. `ContentButton` has these events and properties in addition to `ContentView`s events and properties:
diff --git a/docs/SimpleToolkit.SimpleShell.Controls/README.md b/docs/SimpleToolkit.SimpleShell.Controls/README.md
index d6af6e9..daa7a29 100644
--- a/docs/SimpleToolkit.SimpleShell.Controls/README.md
+++ b/docs/SimpleToolkit.SimpleShell.Controls/README.md
@@ -4,6 +4,14 @@
*SimpleToolkit.SimpleShell.Controls* is a collection of ready-to-use, navigation-related controls (not only) for `SimpleShell`.
+> I am still not decided if I want to continue and how to develop the `SimpleToolkit.SimpleShell.Controls` package. **The package API is likely to change in the future.** For this reason, this package is still in preview and has poor documentation.
+
+
+
+
+
+
+
## Getting Started
In order to use *SimpleToolkit.SimpleShell.Controls*, you need to call the `UseSimpleToolkit()` extension method in your `MauiProgram.cs` file:
@@ -12,8 +20,23 @@ In order to use *SimpleToolkit.SimpleShell.Controls*, you need to call the `UseS
builder.UseSimpleToolkit();
```
+## Controls
+
+The package currently supports only two controls:
+
+- `ListPopover` - popover containing a list of selectable text items
+- `TabBar`
+
+All controls can be styled using different design languages. These are currently supported:
+
+- Material 3
+- Cupertino
+- Fluent (WinUI 3)
+
-
-
-
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/SimpleToolkit.SimpleShell/README.md b/docs/SimpleToolkit.SimpleShell/README.md
index 15c700f..075644f 100644
--- a/docs/SimpleToolkit.SimpleShell/README.md
+++ b/docs/SimpleToolkit.SimpleShell/README.md
@@ -155,8 +155,6 @@ See [documentation](Transitions.md) for more information.
The `SimpleShell` class is inherited from the .NET MAUI `Shell` class, but all the handlers are implemented from the ground up. These handlers are inspired by the WinUI version of `Shell` handlers.
-`SimpleShell` currently does not provide any page transitions. Pages are simply swapped in a container during navigation.
-
## Why not use `SimpleShell` and use .NET MAUI `Shell` instead
- .NET MAUI `Shell` offers a platform-specific appearance.
diff --git a/docs/SimpleToolkit.SimpleShell/Transitions.md b/docs/SimpleToolkit.SimpleShell/Transitions.md
index 8049240..f7bf3ad 100644
--- a/docs/SimpleToolkit.SimpleShell/Transitions.md
+++ b/docs/SimpleToolkit.SimpleShell/Transitions.md
@@ -99,9 +99,9 @@ public AppShell()
finished: args =>
{
args.OriginPage.Opacity = 1;
- args.OriginPage.TranslationX = 1;
+ args.OriginPage.TranslationX = 0;
args.DestinationPage.Opacity = 1;
- args.DestinationPage.TranslationX = 1;
+ args.DestinationPage.TranslationX = 0;
},
destinationPageInFront: args => args.TransitionType switch {
SimpleShellTransitionType.Popping => false,
@@ -130,14 +130,12 @@ public ImagePage()
this.SetTransition(
callback: args =>
{
- args.OriginPage.TranslationY = args.Progress * (-args.OriginPage.Height);
- args.DestinationPage.TranslationY = (1 - args.Progress) * (args.DestinationPage.Height);
+ args.DestinationPage.Scale = args.Progress;
},
500,
finished: args =>
{
- args.OriginPage.TranslationY = 0;
- args.DestinationPage.TranslationY = 0;
+ args.DestinationPage.Scale = 1;
});
}
```
diff --git a/docs/images/listpopovers.png b/docs/images/listpopovers.png
new file mode 100644
index 0000000..2ca19eb
Binary files /dev/null and b/docs/images/listpopovers.png differ
diff --git a/docs/images/star_button_visual_states.gif b/docs/images/star_button_visual_states.gif
new file mode 100644
index 0000000..8f7b361
Binary files /dev/null and b/docs/images/star_button_visual_states.gif differ
diff --git a/docs/images/tabbars.png b/docs/images/tabbars.png
new file mode 100644
index 0000000..ab6564c
Binary files /dev/null and b/docs/images/tabbars.png differ
diff --git a/images/logo_with_background.png b/images/logo_with_background.png
index dfab0fb..7e4fab6 100644
Binary files a/images/logo_with_background.png and b/images/logo_with_background.png differ
diff --git a/images/logo_with_background.svg b/images/logo_with_background.svg
index 6951d11..90f9c41 100644
--- a/images/logo_with_background.svg
+++ b/images/logo_with_background.svg
@@ -2,13 +2,16 @@
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.0666667)" />
+ width="160"
+ height="160"
+ x="5.3290705e-15"
+ y="5.3290705e-15"
+ rx="21.333334"
+ ry="21.333334" />
+ d="m 69.999461,50.00053 a 20,20 0 0 1 -20,20 20,20 0 0 1 -20,-20 20,20 0 0 1 20,-19.999998 20,20 0 0 1 20,19.999998 z M 34.891216,90.00032 c -2.32703,0 -4.710828,1.68157 -4.84466,3.71145 -1.123967,17.04745 19.194491,37.36615 36.242155,36.24163 2.029786,-0.13389 3.710973,-2.51759 3.710973,-4.84459 V 95.01597 c 0,-2.77855 -2.236615,-5.01565 -5.01519,-5.01565 z m 60.108244,2.2e-4 h 30 c 2.77,0 5,2.23 5,5 v 30 c 0,2.77 -2.23,5 -5,5 h -30 c -2.769999,0 -5,-2.23 -5,-5 v -30 c 0,-2.77 2.230001,-5 5,-5 z m -0.0224,-59.986318 c 2.49358,0 2.50215,-7.8e-4 3.81624,1.30146 29.80199,29.533368 0,0 29.80199,29.533368 1.40445,1.39179 1.38936,1.40629 1.38936,3.90974 0,2.50344 -2.42908,5.24303 -5.18739,5.24303 h -29.8202 c -2.75831,0 -4.9789,-2.23411 -4.9789,-5.00921 V 35.02343 c 0,-2.7751 2.48531,-5.009208 4.9789,-5.009208 z" />
+
+
+
diff --git a/src/SimpleToolkit.Core/SimpleToolkit.Core.csproj b/src/SimpleToolkit.Core/SimpleToolkit.Core.csproj
index b6f9979..5b39fc0 100644
--- a/src/SimpleToolkit.Core/SimpleToolkit.Core.csproj
+++ b/src/SimpleToolkit.Core/SimpleToolkit.Core.csproj
@@ -1,8 +1,8 @@
- net6.0;net6.0-android;net6.0-ios;net6.0-maccatalyst
- $(TargetFrameworks);net6.0-windows10.0.19041.0
+ net7.0;net7.0-android;net7.0-ios;net7.0-maccatalyst
+ $(TargetFrameworks);net7.0-windows10.0.19041.0
true
@@ -22,7 +22,7 @@
MAUI, Controls, Button, Popover, Icon
RadekVyM
..\..\packages
- 1.0.0
+ 2.0.0
$(VersionPrefix)$(VersionSuffix)
Collection of simple .NET MAUI controls and helpers that is part of SimpleToolkit library.
@@ -30,7 +30,7 @@
https://github.com/RadekVyM/SimpleToolkit
git
logo_with_background.png
- Copyright © RadekVyM and contributors
+ Copyright © Radek Vymětalík and contributors
diff --git a/src/SimpleToolkit.Playground/App.xaml.cs b/src/SimpleToolkit.Playground/App.xaml.cs
index b89b374..e63fb56 100644
--- a/src/SimpleToolkit.Playground/App.xaml.cs
+++ b/src/SimpleToolkit.Playground/App.xaml.cs
@@ -15,7 +15,7 @@ public App()
{
AppShellType.Normal => new NormalAppShell(),
AppShellType.Sample => new SampleAppShell(),
- _ => new SimpleAppShell()
+ _ => new PlaygroundAppShell()
};
}
}
diff --git a/src/SimpleToolkit.Playground/MauiProgram.cs b/src/SimpleToolkit.Playground/MauiProgram.cs
index 61b0d98..3732aa5 100644
--- a/src/SimpleToolkit.Playground/MauiProgram.cs
+++ b/src/SimpleToolkit.Playground/MauiProgram.cs
@@ -4,7 +4,7 @@ namespace SimpleToolkit.SimpleShell.Playground
{
public static class MauiProgram
{
- internal const AppShellType UsedAppShell = AppShellType.Sample;
+ internal const AppShellType UsedAppShell = AppShellType.Playground;
public static MauiApp CreateMauiApp()
{
diff --git a/src/SimpleToolkit.Playground/SimpleAppShell.xaml b/src/SimpleToolkit.Playground/PlaygroundAppShell.xaml
similarity index 94%
rename from src/SimpleToolkit.Playground/SimpleAppShell.xaml
rename to src/SimpleToolkit.Playground/PlaygroundAppShell.xaml
index 49e7c73..4f25ddd 100644
--- a/src/SimpleToolkit.Playground/SimpleAppShell.xaml
+++ b/src/SimpleToolkit.Playground/PlaygroundAppShell.xaml
@@ -1,6 +1,6 @@
+
+
+
@@ -100,6 +103,7 @@
+
@@ -163,18 +167,6 @@
Route="PopoverPage"/>
-
-
-
-
@@ -238,21 +230,31 @@
-
+ Spacing="10"
+ HorizontalOptions="End"
+ VerticalOptions="End">
+
+
+
+
+ RowDefinitions="70, auto, *, auto">
-
-
{
await this.GoToAsync("..");
@@ -39,13 +39,15 @@ public SimpleAppShell()
};
VisualStateManager.GoToState(this, "Material3");
+ designLanguagesListPopover.SelectedItem = designLanguagesListPopover.Items.FirstOrDefault();
+ Routing.RegisterRoute(nameof(ImagePage), typeof(ImagePage));
Routing.RegisterRoute(nameof(FirstYellowDetailPage), typeof(FirstYellowDetailPage));
Routing.RegisterRoute(nameof(SecondYellowDetailPage), typeof(SecondYellowDetailPage));
Routing.RegisterRoute(nameof(ThirdYellowDetailPage), typeof(ThirdYellowDetailPage));
Routing.RegisterRoute(nameof(FirstGreenDetailPage), typeof(FirstGreenDetailPage));
- Loaded += SimpleAppShellLoaded;
+ Loaded += PlaygroundAppShellLoaded;
this.SetTransition(args =>
{
@@ -82,7 +84,7 @@ public SimpleAppShell()
destinationPageInFrontOnPopping: false);
}
- private void SimpleAppShellLoaded(object sender, EventArgs e)
+ private void PlaygroundAppShellLoaded(object sender, EventArgs e)
{
this.Window.SubscribeToSafeAreaChanges(OnSafeAreaChanged);
}
@@ -141,6 +143,7 @@ private void DesignLanguagesListPopoverItemSelected(object sender, ListPopoverIt
{
if (e.Item is DesignLanguageItem designLanguageItem)
{
+ designLanguagesListPopover.SelectedItem= designLanguageItem;
designLanguageItem.Action?.Invoke();
}
}
diff --git a/src/SimpleToolkit.Playground/SampleAppShell.xaml.cs b/src/SimpleToolkit.Playground/SampleAppShell.xaml.cs
index 10109b5..b8c277d 100644
--- a/src/SimpleToolkit.Playground/SampleAppShell.xaml.cs
+++ b/src/SimpleToolkit.Playground/SampleAppShell.xaml.cs
@@ -7,9 +7,9 @@ namespace SimpleToolkit.SimpleShell.Playground;
public partial class SampleAppShell : SimpleShell
{
- public SampleAppShell()
- {
- InitializeComponent();
+ public SampleAppShell()
+ {
+ InitializeComponent();
Routing.RegisterRoute(nameof(ImagePage), typeof(ImagePage));
@@ -33,23 +33,25 @@ public SampleAppShell()
finished: args =>
{
args.OriginPage.Opacity = 1;
- args.OriginPage.TranslationX = 1;
+ args.OriginPage.TranslationX = 0;
args.DestinationPage.Opacity = 1;
- args.DestinationPage.TranslationX = 1;
+ args.DestinationPage.TranslationX = 0;
},
- destinationPageInFront: args => args.TransitionType switch {
+ destinationPageInFront: args => args.TransitionType switch
+ {
SimpleShellTransitionType.Popping => false,
_ => true
},
- duration: args => args.TransitionType switch {
+ duration: args => args.TransitionType switch
+ {
SimpleShellTransitionType.Switching => 500,
_ => 350
});
- Loaded += SimpleAppShellLoaded;
+ Loaded += PlaygroundAppShellLoaded;
}
- private void SimpleAppShellLoaded(object sender, EventArgs e)
+ private void PlaygroundAppShellLoaded(object sender, EventArgs e)
{
this.Window.SubscribeToSafeAreaChanges(OnSafeAreaChanged);
}
diff --git a/src/SimpleToolkit.Playground/SimpleToolkit.Playground.csproj b/src/SimpleToolkit.Playground/SimpleToolkit.Playground.csproj
index 84aa2bb..fa8cc32 100644
--- a/src/SimpleToolkit.Playground/SimpleToolkit.Playground.csproj
+++ b/src/SimpleToolkit.Playground/SimpleToolkit.Playground.csproj
@@ -1,8 +1,8 @@
- net6.0-android;net6.0-ios;net6.0-maccatalyst
- $(TargetFrameworks);net6.0-windows10.0.19041.0
+ net7.0-android;net7.0-ios;net7.0-maccatalyst
+ $(TargetFrameworks);net7.0-windows10.0.19041.0
Exe
@@ -69,14 +69,20 @@
-
-
+
+
+
+
+
+ PlaygroundAppShell.xaml
+
+
@@ -85,7 +91,7 @@
MSBuild:Compile
-
+
MSBuild:Compile
diff --git a/src/SimpleToolkit.Playground/Views/Pages/ContentButtonPage.xaml b/src/SimpleToolkit.Playground/Views/Pages/ContentButtonPage.xaml
index cb7c759..b84f814 100644
--- a/src/SimpleToolkit.Playground/Views/Pages/ContentButtonPage.xaml
+++ b/src/SimpleToolkit.Playground/Views/Pages/ContentButtonPage.xaml
@@ -10,7 +10,24 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/SimpleToolkit.SimpleShell.Controls/SimpleToolkit.SimpleShell.Controls.csproj b/src/SimpleToolkit.SimpleShell.Controls/SimpleToolkit.SimpleShell.Controls.csproj
index 4f20236..bad3176 100644
--- a/src/SimpleToolkit.SimpleShell.Controls/SimpleToolkit.SimpleShell.Controls.csproj
+++ b/src/SimpleToolkit.SimpleShell.Controls/SimpleToolkit.SimpleShell.Controls.csproj
@@ -1,8 +1,8 @@
- net6.0;net6.0-android;net6.0-ios;net6.0-maccatalyst
- $(TargetFrameworks);net6.0-windows10.0.19041.0
+ net7.0;net7.0-android;net7.0-ios;net7.0-maccatalyst
+ $(TargetFrameworks);net7.0-windows10.0.19041.0
true
@@ -22,15 +22,15 @@
MAUI, Controls, Shell, Navigation
RadekVyM
..\..\packages
- 1.0.0
-
+ 2.0.0
+ -preview1
$(VersionPrefix)$(VersionSuffix)
Collection of ready-to-use, navigation-related controls that is part of SimpleToolkit library. These controls work well with SimpleShell.
https://github.com/RadekVyM/SimpleToolkit
https://github.com/RadekVyM/SimpleToolkit
git
logo_with_background.png
- Copyright © RadekVyM and contributors
+ Copyright © Radek Vymětalík and contributors
@@ -44,7 +44,7 @@
-
+
diff --git a/src/SimpleToolkit.SimpleShell/Handlers/SimpleShell/SimpleShellHandler.Android.cs b/src/SimpleToolkit.SimpleShell/Handlers/SimpleShell/SimpleShellHandler.Android.cs
index fe58bc8..188a925 100644
--- a/src/SimpleToolkit.SimpleShell/Handlers/SimpleShell/SimpleShellHandler.Android.cs
+++ b/src/SimpleToolkit.SimpleShell/Handlers/SimpleShell/SimpleShellHandler.Android.cs
@@ -1,16 +1,20 @@
#if ANDROID
-using Microsoft.Maui.Controls.Platform.Compatibility;
+using Android.Views;
+using AndroidX.DrawerLayout.Widget;
using Microsoft.Maui.Handlers;
using AView = Android.Views.View;
namespace SimpleToolkit.SimpleShell.Handlers
{
- public partial class SimpleShellHandler : ViewHandler
+ public partial class SimpleShellHandler : ViewHandler
{
- protected override CustomFrameLayout CreatePlatformView()
+ protected override ViewGroup CreatePlatformView()
{
- var container = new CustomFrameLayout(MauiContext.Context)
+ // Shell platform view has to be a DrawerLayout because of a change in .NET 7:
+ // When root view implements IFlyoutView, platform view has to be a DrawerLayout
+ // See Connect() method in src/Core/src/Platform/Android/Navigation/NavigationRootManager.cs
+ var container = new DrawerLayout(MauiContext.Context)
{
Id = AView.GenerateViewId()
};
diff --git a/src/SimpleToolkit.SimpleShell/Handlers/SimpleShell/SimpleShellHandler.Shared.cs b/src/SimpleToolkit.SimpleShell/Handlers/SimpleShell/SimpleShellHandler.Shared.cs
index f800ddc..86c4f37 100644
--- a/src/SimpleToolkit.SimpleShell/Handlers/SimpleShell/SimpleShellHandler.Shared.cs
+++ b/src/SimpleToolkit.SimpleShell/Handlers/SimpleShell/SimpleShellHandler.Shared.cs
@@ -1,10 +1,11 @@
#if ANDROID || IOS || MACCATALYST || WINDOWS
+using Microsoft.Maui;
using Microsoft.Maui.Handlers;
using Microsoft.Maui.Platform;
using SimpleToolkit.SimpleShell.Extensions;
#if ANDROID
-using PlatformShell = Microsoft.Maui.Controls.Platform.Compatibility.CustomFrameLayout;
+using PlatformShell = Android.Views.ViewGroup;
#elif IOS || MACCATALYST
using PlatformShell = UIKit.UIView;
#elif WINDOWS
@@ -95,19 +96,19 @@ protected virtual void UpdateContent(IView content)
platformViewHasContent = platformContent is not null;
#if ANDROID
- if (PlatformView.GetChildAt(0) != platformContent)
+ if (platformViewHasContent && PlatformView.GetChildAt(0) != platformContent)
{
PlatformView.RemoveAllViews();
PlatformView.AddView(platformContent);
}
#elif IOS || MACCATALYST
- if (PlatformView.Subviews.FirstOrDefault() != platformContent)
+ if (platformViewHasContent && PlatformView.Subviews.FirstOrDefault() != platformContent)
{
PlatformView.ClearSubviews();
PlatformView.AddSubview(platformContent);
}
#elif WINDOWS
- if (PlatformView.Child != platformContent)
+ if (platformViewHasContent && PlatformView.Child != platformContent)
{
PlatformView.Child = platformContent;
}
diff --git a/src/SimpleToolkit.SimpleShell/Handlers/SimpleShellItem/SimpleShellItemHandler.Shared.cs b/src/SimpleToolkit.SimpleShell/Handlers/SimpleShellItem/SimpleShellItemHandler.Shared.cs
index a82cc26..4e72b93 100644
--- a/src/SimpleToolkit.SimpleShell/Handlers/SimpleShellItem/SimpleShellItemHandler.Shared.cs
+++ b/src/SimpleToolkit.SimpleShell/Handlers/SimpleShellItem/SimpleShellItemHandler.Shared.cs
@@ -85,7 +85,8 @@ private void UpdateShellSectionContainerContent()
if (PlatformView != shellSectionContainer.GetChildAt(0))
{
shellSectionContainer.RemoveAllViews();
- shellSectionContainer.AddView(currentShellSectionHandler.PlatformView);
+ if (currentShellSectionHandler.PlatformView is not null)
+ shellSectionContainer.AddView(currentShellSectionHandler.PlatformView);
}
#elif IOS || MACCATALYST
if (PlatformView != (UIKit.UIView)shellSectionContainer.Subviews.FirstOrDefault())
diff --git a/src/SimpleToolkit.SimpleShell/NavigationManager/SimpleStackNavigationManager.Android.cs b/src/SimpleToolkit.SimpleShell/NavigationManager/SimpleStackNavigationManager.Android.cs
index 36d4303..debd9af 100644
--- a/src/SimpleToolkit.SimpleShell/NavigationManager/SimpleStackNavigationManager.Android.cs
+++ b/src/SimpleToolkit.SimpleShell/NavigationManager/SimpleStackNavigationManager.Android.cs
@@ -9,6 +9,9 @@ public partial class SimpleStackNavigationManager
{
protected virtual void AddPlatformPage(PlatformPage newPageView, bool onTop = true)
{
+ if (newPageView is null)
+ return;
+
var overlay = GetPlatformView(this.rootPageOverlay);
if (overlay?.Id == -1)
diff --git a/src/SimpleToolkit.SimpleShell/SimpleToolkit.SimpleShell.csproj b/src/SimpleToolkit.SimpleShell/SimpleToolkit.SimpleShell.csproj
index e9aabe2..4790e11 100644
--- a/src/SimpleToolkit.SimpleShell/SimpleToolkit.SimpleShell.csproj
+++ b/src/SimpleToolkit.SimpleShell/SimpleToolkit.SimpleShell.csproj
@@ -1,8 +1,8 @@
- net6.0;net6.0-android;net6.0-ios;net6.0-maccatalyst
- $(TargetFrameworks);net6.0-windows10.0.19041.0
+ net7.0;net7.0-android;net7.0-ios;net7.0-maccatalyst
+ $(TargetFrameworks);net7.0-windows10.0.19041.0
true
@@ -22,7 +22,7 @@
MAUI, Controls, Shell, Navigation, Transitions
RadekVyM
..\..\packages
- 1.1.0
+ 2.0.0
$(VersionPrefix)$(VersionSuffix)
Simplified implementation of .NET MAUI Shell that is part of SimpleToolkit library.
diff --git a/src/SimpleToolkit.SimpleShell/Views/SimpleShell/ISimpleShell.cs b/src/SimpleToolkit.SimpleShell/Views/SimpleShell/ISimpleShell.cs
index df343fd..05ec96a 100644
--- a/src/SimpleToolkit.SimpleShell/Views/SimpleShell/ISimpleShell.cs
+++ b/src/SimpleToolkit.SimpleShell/Views/SimpleShell/ISimpleShell.cs
@@ -3,7 +3,7 @@
///
/// A shell that lets you define your custom navigation experience.
///
- public interface ISimpleShell : IFlyoutView, IView, IElement, ITransform, IShellController, IPageController, IVisualElementController, IElementController, IPageContainer
+ public interface ISimpleShell : IView, IElement, ITransform, IShellController, IPageController, IVisualElementController, IElementController, IPageContainer
{
///
/// Gets or sets the content of this shell.