SMB - Fragmenty Michail Mokkas.

Slides:



Advertisements
Podobne prezentacje
Android - cykl życia aplikacji, przykład prostej aplikacji
Advertisements

Obowiązki wobec ZUS  Po podpisaniu umowy o dobrowolne ubezpieczenie z NFZ, ubezpieczony powinien złożyć we właściwym dla swojego miejsca zamieszkania.
Android WYKŁAD 3. Agenda Odtwarzanie stanu Activity Walidacja danych z widoków Przycisk "wstecz" Material Design Fragmenty Implementacja GUI opartego.
Przewodnik po raportach rozliczeniowych w Condico Clearing Station (Rynek finansowy)
Czy wiesz, że?... INTERNET …TO JEST SPIS TREŚCI NIEBEZPIECZEŃSTWO SPOŁECZNOŚĆ INTERNETOWA DZIECKO W INTERNECIE ZAUFANE STRONY INTERNETOWE WIRUSY.
Tworzenie odwołania zewnętrznego (łącza) do zakresu komórek w innym skoroszycie Możliwości efektywnego stosowania odwołań zewnętrznych Odwołania zewnętrzne.
PRACA Z APLIKACJAMI SYSTEM PRZEMIESZCZANIA oraz NADZORU WYROBÓW AKCYZOWYCH EMCS PL 1.
Mam prawo do ochrony swoich danych osobowych Twoje dane – Twoja sprawa. Skuteczna ochrona danych osobowych. Inicjatywa edukacyjna skierowana do nauczycieli.
 Czasem pracy jest czas, w którym pracownik pozostaje w dyspozycji pracodawcy w zakładzie pracy lub w innym miejscu wyznaczonym do wykonywania pracy.
Literary Reference Center Przewodnik
Jeśli chcesz przejść do konkretnego zagadnienia, wybierz je z listy: Dopisanie narzędzia Modyfikacja narzędzia Usunięcia narzędzia Lokalizacja domyślna.
OBSŁUGA KARTY DILO. Karta diagnostyki i leczenia onkologicznego zawiera: - oznaczenie pacjenta, pozwalające na ustalenie jego tożsamości, - oznaczenie.
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Wydział Informatyki Kierunek: Informatyka Specjalność: Systemy Informatyczne PRACA DYPLOMOWA INŻYNIERSKA.
Praca dyplomowa inżynierska Temat: Informatyczny system edukacyjny do przedmiotu „Podstawy Kryptologii” Dyplomant: Ewelina Bogusz Promotor: prof. zw.,
Instalacja nienadzorowana windows xp Jakub klafta.
Usługa PUE-ZUS (Platforma Usług Elektronicznych Zakładu Ubezpieczeń Społecznych) Michał Dobrzyński, Departament Informatyki MRPiPS
Urządzenia i technologie mobilne. Tablet Mobilny komputer większy niż telefon komórkowy, którego główną właściwością jest posiadanie dużego ekranu z zastosowaną.
Moduł SDI – zasilanie węzłów IIP oraz wykorzystanie danych. Wprowadzenie. Szkolenie przeprowadzone w ramach projektu „TERYT 3 – Rozbudowa systemów do prowadzenia.
Budżetowanie kapitałowe cz. III. NIEPEWNOŚĆ senesu lago NIEPEWNOŚĆ NIEMIERZALNA senesu strice RYZYKO (niepewność mierzalna)
Projektowanie prezentacji multimedialnych Piotr Rakowski Gliwice 2006.
Moduł II. Obszar formułowania Programów i Projektów.
System operacyjny Renata P. System operacyjny - jest to zbiór nadrzędnych i niezbędnych programów umożliwiających pracę na komputerze. Jest on pośrednikiem.
BVMS 5.5 Blok2- Moduł 8: Użytkownicy i grupy
System Monitorowania Kształcenia (SMK) Jak zapisać się na kurs / specjalizację – instrukcja krok po kroku Od dnia 1 lipca 2017 celem zapisania się na.
Test analizy wariancji dla wielu średnich – klasyfikacja pojedyncza
POD - żółw przesuwa się po ekranie nie zostawiając za sobą śladu;
Komunikacja ze szkołą i nauczycielami - dziennik elektroniczny
DEFINICJA I ZASTOSOWANIE W JĘZYKU HASKELL
Symulacja procesu BPMN
Podstawowe polecenia systemu
PRACA DYPLOMOWA WYŻSZE STUDIA ZAWODOWE
Microsoft® Office SharePoint® Server 2007 — szkolenie
Quick Tips Tutorial Jak uzyskać dostęp do raportów EBSCOhost i EBSCO Discovery Service w EBSCOadmin support.ebsco.com.
Akademia C# lab. 9 Zdarzenia i delegaty.
FUTURE – CLOUD „ KROK PO KROKU ’’
*) n to numer kolejny koordynatora
Przewodnik Udoskonalanie listy wyników w wyszukiwarce naukowej
Materiały pochodzą z Platformy Edukacyjnej Portalu
Inżynieria Oprogramowania Laboratorium
Tworzenie tabel przestawnych
PROGRAMY DO KONTROLI RODZICIELSKIEJ
System operacyjny cz.2.
Git - system kontroli wersji
Bezpieczeństwo dostępu do danych w systemie Windows
SMB – Pierwszy projekt Michail Mokkas.
Jak dostosować witrynę internetową usługi Microsoft SharePoint Online
Tworzenie modelu: przeglądanie wyników, redukcja rozmiarów modelu.
The Game Engine For Mobile
Jak korzystać z usługi Video s i Raportu Kontaktów
Rekrutacja elektroniczna DO SZKÓŁ PONADGIMNAZJALNYCH w roku 2018
Koszyk danych.
Podstawy informatyki Zygfryd Głowacz.
Pobranie logo programu Microsoft Partner Network Instrukcja
Strukturalne wzorce projektowe
SKJ Serwer WWW Michail Mokkas.
PGO Kolekcje Michail Mokkas.
Wyjazdy dydaktyczne i szkoleniowe dla kadry akademickiej.
Znajdowanie liczb pierwszych w zbiorze
REGRESJA WIELORAKA.
Wyrównanie sieci swobodnych
POZNAJEMY PULPIT Opracowanie: mgr Barbara Benisz SP nr 20 w Rybniku
Jak zgłosić do programu
Instrukcja obsługi systemu Dream Apply dla pracowników Uniwersytetu Szczecińskiego Wyjazdy dydaktyczne dla kadry akademickiej.
PGO GUI - Swing Michail Mokkas.
Autor: Magdalena Linowiecka
Najważniejsze informacje dotyczące programu Sway.
Najważniejsze operacje graficzne w programie GIMP
Najważniejsze operacje graficzne w programie GIMP
Platforma LearningApps
Zapis prezentacji:

SMB - Fragmenty Michail Mokkas

Fragmenty Reprezentuje moduł interfejsu zagnieżdżonego w aktywności. Poprzez dodawanie fragmentów można budować interfejs graficzny składający się z wielu sektorów (ang. panes). Zostały wprowadzone wraz z Android 3.0 (API 11). Głównym powodem była szeroka dostępność urządzeń o różnym rozmiarze ekranów (np. tablety). starsze wersje mogą z nich korzystać za pośrednictwem biblioteki: “v4 Support Library” Fragmenty mogą być ponownie wykorzystane w dowolnej liczbie aktywności.

Fragmenty kont. 1 Umożliwiają repozycjonowanie porcji UI w zależności od kształtu/rozmiaru ekranu. source: http://developer.android.com/guide/components/fragments.html

Cykl życiowy fragmentu Fragmenty posiadają własny cykl zyciowy, który jest zależny od cyklu życiowego aktywności, w której są zagnieżdzone. Bardzo podobny do aktywności. Jeżeli zaistniała potrzeba konwersji jakiejś aktywności na fragment, często wystarczy tylko przekopiować kod z poszczególnych metod bez potrzeby jego modyfikacji. Stany w jakich fragment może się znajdować: Resumed - jest widoczny w uruchomionej aktywności Paused - jest widoczny w uruchomionej aktywności ale zgubił focus Stopped - nie widoczny (np. usunięty z aktywności lub aktywność jest także nie widoczna)

Stan fragmentu W razie potrzeby można zapisać stan fragmentu wykorzystując do tego klasę Bundle. Bundle podobnie jak SharedPreferences przyjmuje wartości prymitywne w postaci <klucz,wartość> . Zapisanie stanu fragmentu odbywa się poprzez wykorzystanie metody: onSaveInstanceState(). Odczytanie stanu fragmentu odbywa się tak jak w aktywności, poprzez przekazanie bundle’a odpowiedniej metodzie (np. onCreate dla aktywności, w przypadku fragmentu onCreateView). Uwaga mechanizm ten wykorzystywany jest jedynie dla danych tymczasowych. Aby trwale zapisać dane, powinniśmy wykorzystać np. SharedPreferences.

Cykl życiowy fragmentu kont. 1 onAttach(Context) – wywołana, kiedy następuje powiązanie fragmentu z aktywnością. onCreate(Bundle) – wywołana, kiedy następuje tworzenie fragmentu. onCreateView(LayoutInflater, ViewGroup, Bundle) – tworzy i zwraca hierarchię widoków powiązanych z fragmentem. onActivityCreated(Bundle) – powiadamia fragment o wykonaniu metody onCreate() powiązanej aktywności. onViewStateRestored(Bundle) – wywołana kiedy wszystkie zapisane stany z hierarchii widoków zostały odtworzone.

Cykl życiowy fragmentu kont. 2 onStart() – czyni fragment widoczny dla użytkownika. Pod warunkiem, że metoda onStart() aktywności też została wykonana. onResume() – sprawia, że interakcja użytkownika z fragmentem zostaje umożliwiona. Pod warunkiem, że metoda onResume () aktywności też została wykonana. onPause() – sprawia, że interakcja użytkownika z fragmentem zostaje uniemożliwiona. Powodem może być wykonanie metody onPause() aktywności lub modyfikacja samego fragmentu w aktywności. onStop() – czyni fragment niewidoczny dla użytkownika. Przyczyną może być zatrzymanie powiązanej aktywności lub modyfikacja samego fragmentu.

Cykl życiowy fragmentu kont. 3 onDestroyView() – umożliwia wyczyszczenie przez fragment zasobów powiązanych z jego widokiem. onDestroy() – wywołana w celu ostatecznego wyczyszczenia stanu fragmentu. onDetach() – wywołana tuż przed utratą powiązania fragmentu z daną aktywnością.

Rodzaje fragmentów Fragment – podstawowa klasa reprezentująca fragment. Podklasy Fragment: DialogFragment – wyświetla dialog. Służy jako alternatywa dialogów aktywności. Można dodawać do back stacku (użytkownik może powracać do nich). ListFragment – wyświetla listę elementów zarządzanych przez adapter (podobnie do ListActivity). Dysponuje metodami do zarządzania widokami listy (np. ListView) PreferenceFragment – wyświetla listę z preferencjami (podobnie jak PreferenceActivity).

Fragment (kod) - dynamicznie LayoutInflater – ustala układ z pliku XML do poszczególnego obiektu View. Do otrzymania obiektu typu LayoutInflater wykorzystywana jest metoda getLayoutInflater(). inflate(int, ViewGroup, Boolean) – ustala hierarchię układów z pliku XML. Argument boolowski wskazuje, czy fragment powinien być dodany do hierarchii widoku ViewGroup.

Fragment (layout)

Dodawanie fragmentu do aktywności (statycznie) android:layout_weight - ustala proporcje ekranowe (np. jeżeli mamy drugi fragment, który posiada wartość 4 to wtedy pierwszy zajmuje 1/5 a drugi 4/5 ekranu). Musi być ustalony dla wysokości lub szerokości (wtedy jeden z nich ma wartość 0).

Komunikacja pomiędzy Activity - Fragment Z poziomu fragmentu: getActivity() – otrzymamy aktywność, która jest obecnie powiązana. np. View mv = getActivity().findViewById(R.id.activity1); Z poziomu aktywności: findFragmentById() – odnajduje powiązany fragment po id. findFragmentByTag() – odnajduje powiązany fragment po tagu. np. MyFragment mf = (MyFragment) getFragmentManager().findFragmentbyId(R.id.fragment1);

Dodawanie fragmentu do aktywności (dynamicznie) FragmentManager – interfejs do interakcji z fragmentami zagnieżdżonymi w aktywności. Metoda getFragmentManager() zwraca instancję menadżera. Dla wyższych API zaleca się getSupportFragmentManager(). beginTransaction() – umożliwia dokonywanie edycji fragmentów zarządzanych przez FragmentManager. Należy utworzyć/wykonać transakcję jedynie przed zapisem stanu fragmentu.

Zamiana fragmentu replace(int, Fragment) – zastąpienie istniejącego fragmentu dodanego do jakiegoś kontenera, nowym. addToBackStack(String) – dodanie transakcji do back stacku (przyjmuje tag fragmentu).

Usunięcie fragmentu remove() – usunięcie fragmentu. isInLayout() – sprawdza czy fragment jest już obecnie dodany do aktywności.

Aktywność z fragmentem (layout)

Przykład1 Aplikacja z jedną aktywnością i dwoma fragmentami, które są zapisywane w back stacku. Pliki układów takie jak wcześniej opisane. Tworzenie pierwszego fragmentu: Drugi fragment wygląda tak samo, jedyna róźnica to nazwa klasy MyFragment1 oraz tekst tv “Fragment2”.

Przykład1 kont. 1

Rezultat

ActionBar App Bar podnosi jakość doświadczeń użytkownika. Wyświetla aktualne miejsce w aplikacji, w którym użytkownik się znajduje. Udostępnia funkcje jak nawigacja oraz wyszukiwanie. Sprawia, że poruszanie się po aplikacji jest bardziej intuicyjne (podobne do wielu innych aplikacji).

Toolbar Jest uogólnieniem ActionBar. Został dodany w API 21 (Lolipop) wraz z Material Design Toolbar jest widokiem co umożliwia lepszą kontrolę oraz elastyczność. Toolbar może być zagnieżdżony w różnych poziomach hierarchii układu aktywności (w przeciwieństwie do ActionBar).

TabLayout Dostarcza układ horyzontalny do pokazywania zakładek. Aby móc korzystać z TabLayout należy dodać do dependencies w pliku build.gradle:app : compile ‘com.android.support:design:23.1.0’ lub nowsza wersja newTab() – tworzy i zwraca nową zakładkę TabLayout.Tab addTab(TabLayout.Tab, int, boolean) – dodanie zakładki do układu na wskazanej pozycji oraz ustawieniem czy ma być wybrana. Domyślna wersja metody dodaje zakładkę jako ostatnią oraz jeżeli jest pierwsza zostaje wybrana (domyślnie pokazująca się). setTabGravity() – wybranie sposobu w jaki, zakładki będą pozycjonowane. GRAVITY_CENTER - centrowanie GRAVITY_FILL – wypełnia TabLayout jak bardzo jest to możliwe

TabLayout kont. 1 TabLayout.OnTabSelectedListener – interfejs wywołań zwrotnych powołany po zmianie stanu zaznaczenia zakładki. onTabSelected() – wywołana kiedy zakładka przechodzi w stan zaznaczenia. onTabUnselected() - wywołana kiedy zakładka przechodzi w stan odznaczenia. onTabReselected() – wywołana kiedy użytkownik ponownie zaznacza zaznaczoną już zakładkę. TabLayout.Tab – reprezentuje zakładkę. getPosition() – zwraca aktualną pozycję zakładki.

ViewPager Służy do zarządzania i przesuwania stronami (np. fragment). setAdapter(PagerAdapter) – ustawia PagerAdapter (bazowa klasa) do dostarczania widoków. addOnPageChangeListener(ViewPager.onPagehangeListener) – nasłuchuje na zmianę strony. setCurrentItem(int, boolean) – ustala aktualnie wybraną stronę.

Tworzenie zakładek (tabs)

Zakładka 1 (layout)

Zakładka 2 (layout)

Zakładka 3 (layout)

PageAdapter PageAdapter - abstrakcyjna klasa, dlatego musimy stworzyć własną implementację. Alternatywnie: FragmentPagerAdapter - przetrzymuje wszystkie fragmenty w pamięci FragmentsStatePagerAdapter - przetrzymuje jedynie savedInstanceState stanów fragmentów (usuwa te bez focusa)

Aktywność z zakładkami (kod) android.support.v4: ViewPager Fragment FragmentManager FragmentSupportManager FragmentStatePagerAdapter android.support.v7: AppCompatActivity Toolbar

Aktywność z zakładkami (kod) kont. 1

Aktywność z zakładkami (kod) kont. 2

Aktywność z zakładkami (layout)

Rezultat