TOC
A więc mamy kolejny tydzień konkursu, plan jaki sobie założyłem to implementacja nawigacji w 10Things. Jako, że aplikacja będzie korzystać z FreshMVVM dlatego też zacząłem zgłębiać tajniki nawigacji tego framework-a.
FreshMVVM daje nam 3 możliwe opcje nawigacji z pudełka „Basic navigation”, „Tabbed navigation” i „Master Detail navigation”.
Postaram się pokrótce przedstawić każdą z opcji, oraz jak ich użyć w aplikacji.
Jak zaimplementować – basic navigation
Jest to najprostsza i najczęściej spotykana forma nawigacji page-by-page. Zasada jej działania jest oparta na stosie FIFO. W implementacji jest ona bardzo prosta wystarczy zainicjować instancję FreshNavigationContainer.
Przykład
[code lang=”csharp”]
var page = FeshPageModelResolver.ResolvePageModel();
var navContaincer = new FreshNavigationContainer(page);
MainPage = navContainer;
[/code]
Jak zaimplementować – master detail navigation
Jest to rodzaj nawigacji często spotykany w postaci szerokiej maści menu i nawigacjach typu rodzic dziecko. Pod maską do obsługi używa **Dictionary<string, Page> **do przechowania instancji PageModels.
Przykład
[code lang=”csharp”]
var navContainer = new FreshMasterDetailNavigationContainer();
navContainer.Init(“Menu”);
navContainer.AddPage(“Ideas”, null);
navContainer.AddPage(“Settings”, null);
MainPage = navContainer;
[/code]
Jak zaimplementować – tabbed navigation
Tabbed navigation jest kolejnym często spotykanym rodzajem nawigacji w aplikacjach mobilnych. W Android jest to pasek zakładek wyświetlany na górze, natomiast w iOS pojawia się on na dole. Implementacja i użycie jest bardzo proste wystarczy utworzyć instancję FreshTabbedNavigationContainer.
Przykład
[code lang=”csharp”]
var navContainer = new FreshTabbedNavigationContainer();
navContainer.AddTab(“Ideas”, null);
navContainer.AddTab(“Settings”, null);
MainPage = navContainer;
[/code]
Co dalej?
**FreshMVVM **daje nam dostęp do prostego API dzięki, któremu można w łatwy sposób zaimplementować niestandardową nawigację dziedzicząc po interfejsie IFreshNavigationService.
Przykład
[code lang=”csharp”]
public class CustomNavigationContainer : Xamarin.Forms.MasterDetailPage, IFreshNavigationService
{
….
}
var navContainer = new CustomNavigationContainer();
navContainer.AddPage(“Ideas”);
navContainer.AddPage(“Settings”);
MainPage = navContainer;
[/code]
Podsumowanie
Jak widzicie implementacja nawigacji nie musi być wcale taka trudna bo można to zrobić lekko łatwo i przyjemnie. Niekoniecznie w takiej kolejności. Na chwilę obecną FreshMVVM wysunął się mocno na prowadzenie względem innych framework MVVM.
Ma on wiele zalet, a przede wszystkim jest bardzo lekki ok. 60kb.
Czy wy macie jakieś swoje ulubione framework MVVM? Jaka funkcjonalność jest dla was najfajniejsza?
真诚赞赏,手留余香
使用微信扫描二维码完成支付
comments powered by Disqus