Plan zajęć cz. 19 – Mobilny ekran logowania

Tydzień ten spędziłem nad pisaniem ekranu logowania do systemu. Niestety nie poszło to tak prosto jak sądziłem. Napotkałem parę błędów, z którymi musiałem się pierw uporać.

LayoutOptions

Xamarin pozwala programiście na ustawienie opcji layoutu. Pionowych oraz poziomych, do wyboru mamy Start, End, Center, Fill. Dodatkowo każda z opcji posiada dodatkowy przełącznik Expand, mówiący o tym, że kontrolka ma zająć całe dostępne miejsce. I właśnie ten mechanizm sprawił sporo problemów przy tworzeniu pozornie prostego widoku, jakim jest ekran logowania.

Na samym początku ExtendedLabel dziedziczyło z klasy bazowej Grid. Dzięki temu do kontrolki został dodany Padding pozwalający na większą swobodę przy używaniu etykiet. Niestety w momencie umieszczenia Grida w jakimkolwiek kontenerze zajmuje on całe dostępne miejsce nawet w przypadku ustawienia opcji layoutu na takie bez opcji Expand. Rozwiązaniem okazała się zmiana klasy bazowej z Grid na StackLayout, po czym ExtendedLabel działa tak jak powinien.

Kończąc

Podczas pierwszego tworzenia widoku aplikacji okazało się, że logika napisana wcześniej do aplikacji desktopowej niekoniecznie pasuje do przełożenia na aplikację mobilną. Myślę o tym, aby zrobić podobnego frameworka do WPF jak do Xamarina. Wspólny byłby core frameworka.

Dodatkową opcją, nad którą muszę się zastanowić to wymiana statycznych danych takich jak tłumaczenia interfejsu, kolory i inne zasoby. Niestety ResourceDictionary różnią się nieco pomiędzy WPF i Xamarinem.

Cały kod można zobaczyć na moim koncie github /kkolodziejczak/ZUTSchedule

Leave a Reply

Translate »