Xamarin – Szablony
Możliwość posiadania szablonów jest jedna z kluczowych, a zarazem koniecznych rzeczy w każdej technologii. Na całe szczęście Xamarin pozwala nam na tworzenie własnych szablonów do naszych kontrolek. W tym krótkim wpisie postaram się przedstawić przykładowy szablon strony bazowej.
Szablon
Xamarin pozwala nam na tworzenie ControlTemplate. Tak stworzony szablon można przypisać danej kontrolce, aby wyglądała zgodnie z tym, co zaprojektowaliśmy. Takie rozwiązanie pozwala na wyciągnięcie wspólnych cech widoków i zapisanie ich w postaci szablonu. Posiadając szablon aplikacji mamy dużo łatwiejsze zadanie w konieczności wprowadzenia jakichkolwiek zmian, oszczędzając tym samym nerwów i czasu na znalezienie wszystkich zakamarków, w których ustawiamy nasz widok.
Przykładowy szablon
Przykładowym szablonem, jaki pokażę, będzie strona bazowa całej aplikacji. Będzie to uproszczona wersja strony, którą tworzę w SXF. Znajdzie się w niej tylko panel nawigacji.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
IsVisible="{Binding IsVisible}" BindingContext="{TemplateBinding BindingContext.NavigationBar}" BackgroundColor="{DynamicResource SXF_NavigationBar_BackgroundColor}" /> |
Szablon wygląda identycznie jak widok zwykłej strony. Możemy go natomiast stosować do wszystkich stron w aplikacji. Zawartość strony zostanie automatycznie wyświetlona w miejscu, gdzie znajduje się ContentPresenter. Pozostałe części widoku będą zawsze wyświetlane na postawie widoku bazowego.
Wykorzystanie
Wykorzystać ten szablon możemy na kilka sposobów. Jednym z nich jest umieszczenie go w ResourceDictionary i ustawianie ControlTemplate na każdej nowej stronie. Jest to rozwiązanie dobre, lecz wymaga od użytkownika, aby za każdym razem ustawiał szablon.
1 2 3 4 5 6 |
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:Simple.Xamarin.Framework" ControlTemplate="{StaticResource BaseContentPageTemplate}" x:Class="Simple.Xamarin.Framework.BaseContentPage" > |
Moim preferowanym rozwiązaniem jest stworzenie klasy bazowej, po której będziemy dziedziczyli. Tym sposobem ustawiamy szablon tylko raz i możemy przeładować metody klasy ContentPage takie jak np. OnBackButtonPressed, pisząc tylko jedną implementację logiki. Bez konieczności powtarzania kodu w każdej nowej stronie.
Kończąc
Tworzenie własnych szablonów pozwala nam na stworzenie własnego stylu aplikacji. Dzięki widokowi znajdującemu się w jednym pliku dokonywanie jakichkolwiek zmian jest bardzo przyjemne, ponieważ wszystkie ustawienia posiadamy w jednym miejscu. Powielanie kodu i widoków jest bardzo złą praktyką, prędzej czy później wpłynie negatywnie na wprowadzenie jakichkolwiek zmian w całej aplikacji.