Jak korzystać z fragmentów w aplikacjach na Androida, aby uzyskać potężny i dynamiczny interfejs użytkownika

Autor: John Stephens
Data Utworzenia: 28 Styczeń 2021
Data Aktualizacji: 19 Móc 2024
Anonim
Jak korzystać z fragmentów w aplikacjach na Androida, aby uzyskać potężny i dynamiczny interfejs użytkownika - Aplikacje
Jak korzystać z fragmentów w aplikacjach na Androida, aby uzyskać potężny i dynamiczny interfejs użytkownika - Aplikacje

Zawartość


Uwaga: w tym artykule założono, że znasz podstawy programowania Androida i Java. Powinieneś już być w stanie tworzyć podstawowe układy i korzystać z widoków, na kliknięcie i findViewByID. Jeśli zrozumiesz te pojęcia, możesz nauczyć się używać fragmentów!

Fragmenty to potężna funkcja dobrego interfejsu użytkownika Androida, która pozwala podejść do projektowania aplikacji w sposób modułowy. Są to odrębne widoki, które mogą zawierać całe układy i mają własny towarzyszący kod Java. Rozbijając interfejs w ten sposób, możesz stworzyć bardziej logiczne układy, które są łatwiejsze do zrozumienia dla użytkowników. Możesz podać im dodatkowe informacje i kontrole bez konieczności opuszczania aktywności.

Zobacz także: Bezproblemowe fragmenty: Korzystanie z komponentu architektury nawigacji systemu Android

Fragmenty zapewniają znacznie więcej opcji w projektowaniu aplikacji i mogą znacznie poprawić wrażenia użytkownika


Co więcej, fragmenty zachowują się jak klasy i obiekty, w których możesz mieć wiele instancje tego samego fragmentu. Oznacza to, że możesz wielokrotnie używać tego samego układu bez konieczności przepisywania kodu, a nawet pokazywać dwie różne wersje obok siebie.

Krótko mówiąc, dopóki to jeszcze nie jest inne rzecz, której należy się nauczyć, jeśli chodzi o pozornie niekończącą się listę rzeczy do zrobienia związaną z aplikacjami na Androida, jest to coś, co może dać ci znacznie więcej opcji w projektowaniu aplikacji i znacznie poprawić wrażenia użytkownika - czyniąc to więcej niż warte czasu poświęconego na zapoznanie się .

Jak zbudować swój pierwszy fragment Androida

Co więc możemy zrobić z fragmentami, które nie miałyby sensu w żaden inny sposób?

Być może mamy listę plików - może to jest galeria zdjęć - i chcemy pokazać opis i dać użytkownikowi opcję usunięcia lub udostępnienia. Tego typu rzeczy. Możemy za każdym razem wysłać je na nową stronę „Opis”, używając osobnej czynności, ale jeśli użyjesz fragmentów, możemy zachować je na jednej stronie, co będzie mniej denerwujące.


Otwórz Android Studio i utwórz listę losowych obrazów w activity_main.xml. Używam zdjęć Dragon Ball Super ponieważ jestem kujonem i właśnie to leżę na moim komputerze…

Teraz stworzymy nasz pierwszy fragment.

Aby to zrobić, idziesz do Plik> Nowy> Fragment. Gdy to zrobisz, musisz wybrać MainActivity.java po lewej stronie, a na razie wybierzesz fragment „pusty”. Będziesz wtedy mógł wybrać nazwę nowego dzieła, które nazwiemy „Opis”. Odznacz dwa pola poniżej - nie potrzebujemy tego teraz.

Gdy to zrobisz, przekonasz się, że masz teraz nie tylko nowy plik java o nazwie Description.java, ale także nowy plik układu o nazwie fragment_description.xml - zupełnie tak, jakbyś utworzył nową klasę! Oznacza to, że umieścisz kod dołączony do nowego fragmentu w osobnym pliku Java.

Dodawanie układów, widoków i kodu

Dobrą wiadomością jest to, że bardzo łatwo możemy dodawać widoki i układ, gdy używamy fragmentów. Zrobimy to tak, jak zwykle, edytując fragment_timer.xml.

Użyjmy ponownie układu liniowego i tym razem dodajmy elementy sterujące i tekst opisowy. Na razie możesz tu coś przykleić.

Więc teraz następne pytanie brzmi: jak sprawić, by faktycznie pojawiło się to w Twojej aplikacji?

Możesz to zrobić, dodając fragment do działania, tak jak w przypadku każdego innego widoku. Więc przejdź do activity_main.xml i dodaj widok, aby zajmował część ekranu - być może na dole.

Jeśli chcesz to zrobić tak jak ja, użyłem pionowego układu liniowego i nadałem wszystkim obrazom wagę 1, a fragmentu wagę 2.

Zauważysz, że podgląd nie pokazuje rzeczywistego fragmentu, tylko symbol zastępczy. Zauważ też, że musiałem zawrzeć nazwę fragmentu w pliku XML, aby Android wiedział, gdzie go znaleźć. Potrzebujesz również identyfikatora dla każdego fragmentu.

Kod

Jak już wspomniano, kod, którego potrzebujemy używać fragmentów, przejdzie do własnego pliku Java. W tym przypadku jest to plik Description.java.

Jeśli sprawdzisz tę stronę, zobaczysz, że istnieje konstruktor (tak jak w każdej klasie, która tworzy obiekt) i metoda o nazwie onCreateView. Ta metoda polega na tym, że xml jest używany do nadmuchania tego widoku i jest również równoważny z twoim zwykłym onCreate metoda w standardowym działaniu.

W większości przypadków możesz robić rzeczy tak, jak zwykle tutaj. findViewByID działa i możesz użyć tego do zmiany tekstu itp., ale musisz nieco inaczej uzyskać odniesienie. Zmień wiersz o treści:

return inflater.inflate (R.layout.fragment_opisu, pojemnik, fałsz);

Do:

Zobacz v = inflater.inflate (R.layout.fragment_opisu, pojemnik, fałsz);

A następnie użyj:

v.findViewByID.

Teraz możesz uzyskać dostęp do swoich widoków w normalny sposób:

public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle saveInstanceState) {View v = inflater.inflate (R.layout.fragment_opisu, pojemnik, fałsz); Przycisk okButton = v.findViewById (R.id.dobrze) ;; Przycisk shareButton = v.findViewById (R.id.Dzielić); okButton.setOnClickListener (nowy View.OnClickListener () {public void onClick (View v) {Toast.makeText(getActivity (), „OK!”, Toast.LENGTH_LONG ).pokazać(); }}); shareButton.setOnClickListener (nowy View.OnClickListener () {public void onClick (View v) {Toast.makeText(getActivity (), „Sharing ...”, Toast.LENGTH_LONG ).pokazać(); }}); return v; }}

Używaj fragmentów z wieloma instancjami

Możesz zobaczyć, jak znacznie łatwiej jest stworzyć usprawniony interfejs użytkownika i kod, gdy używamy fragmentów. Zamiast używać układów wewnątrz układów, a następnie żonglować dużą liczbą kliknięć w jednym pliku Java. Co więcej, to podejście „modułowe” pozwoliłoby korzystać z tego widoku w różnych działaniach, a nawet w menu i innych dynamicznych lokalizacjach.

Ale naprawdę fajną częścią jest to, że możesz mieć wiele instancji tego samego fragmentu, wszystkie istniejące jednocześnie.

Wykonanie tego jest proste: wystarczy dodać więcej niż jeden widok i napompować dokładnie tym samym kodem.

Mam nadzieję, że teraz zaczniesz dostrzegać moc wykorzystywania fragmentów: wyobraź sobie, że masz Recycler View (przewijaną listę) obrazów, z których każdy zawiera szczegółowe informacje i elementy sterujące poniżej. Za każdym razem nie będzie potrzeby tworzenia zupełnie nowego układu i możesz ukryć widoki, dopóki użytkownik nie kliknie zdjęcia!

Ponadto możesz programowo generować nowe fragmenty. Wszystko, czego potrzebujesz, to miejsce, w którym fragment może znaleźć się w twoim układzie - na przykład układ ramki (który nazywam fragmentTarget), a następnie możesz wykonać następujące czynności:

Fragment addedFragment = new Description (); FragmentTransaction transaction = getSupportFragmentManager (). BeginTransaction (); transaction.replace (R.id.fragmentTarget, addedFragment); transakcja.addToBackStack (null); transakcja.commit ();

Pamiętaj o zaimportowaniu niezbędnych klas - przy każdej próbie użycia fragmentów w kodzie pojawi się monit. Pamiętaj tylko, aby wybrać najlepszą opcję z napisem „v4”.

Możliwość programowego dodawania fragmentów jest ważna, ponieważ oznacza, że ​​możemy wygenerować dynamiczną listę obrazów (które pobraliśmy, które znajdują się w określonym folderze itp.), A następnie natychmiast wyświetlić nam szczegóły.

Tak więc w tym nowym przykładzie drugi fragment został dodany programowo.

Wreszcie może się okazać, że chcesz zmienić wygląd swoich fragmentów w zależności od ich lokalizacji. Dobrą wiadomością jest to, że możesz to zrobić łatwo, przekazując identyfikator jako pakiet podczas tworzenia fragmentu, a następnie wyodrębniając tę ​​wartość na drugim końcu.

W MainActivity.java użyj:

Pakiet pakietu = nowy pakiet (); bundle.putInt („ID”, 1); addedFragment.setArguments (pakunek);

A następnie w Description.java dodaj:

int eyeD = 0; Pakiet pakietu = this.getArguments (); if (bundle! = null) {eyeD = bundle.getInt ("ID", 0); } switch (eyeD) {przypadek 1:…

Następnie możesz - na przykład - sprawić, by aplikacja wyświetlała różne notatki dla każdego obrazu.

Komentarze końcowe

Tak właśnie używasz fragmentów. Mam nadzieję, że rozumiesz podstawy, a ten post dał ci wystarczająco dużo zrozumienia, że ​​możesz iść naprzód i dowiedzieć się reszty. Co ważniejsze, mam nadzieję, że pokazało to niektóre z możliwych zastosowań fragmentów i potencjał, jaki oferują one w celu inteligentniejszego projektowania aplikacji.

Jeśli chcesz zobaczyć kolejny przykład fragmentów w akcji, zapoznaj się z moim ostatnim postem na temat tworzenia niestandardowego programu uruchamiającego!

Rozwój Androida:

  • Jak stworzyć aplikację VR na Androida w zaledwie 7 minut
  • Utwórz własną akcję dla Asystenta Google
  • Zrootuj Androida: wszystko, co musisz wiedzieć!
  • Anatomia aplikacji: wprowadzenie do cyklu życia aktywności
  • Android Jetpack: Co oznaczają ostatnie ogłoszenia dla Biblioteki pomocy technicznej Androida?

Rynek tabletów nie jet dziś w ogniu, ale zaoberwowaliśmy trend w kierunku modeli Pro pakujących etui z klawiaturą i dużą moc. Teraz wygląda na to, że Huawei przygotowuje właną kartę Pro....

Chociaż MateBook 13 był z pewnością najwiękzym celem Huawei na CE 2019, nie był to jedyny komunikat od firmy. Po uruchomieniu w Indiach i innych wybranych rynkach pod koniec ubiegłego roku, Huawei Med...

Interesujący Dzisiaj.