Fragmenty sú výkonným nástrojom pri vývoji systému Android, najmä pri vytváraní aplikácie nastavení. Umožňujú vám vytvárať modulárne a opakovane použiteľné komponenty používateľského rozhrania, ktoré možno ľahko spravovať a aktualizovať. Ako dodávateľ fragmentov som mal príležitosť pracovať na mnohých projektoch pre Android a rád by som sa podelil o niekoľko postrehov, ako efektívne používať fragmenty v aplikácii nastavení.
Pochopenie fragmentov v systéme Android
Predtým, ako sa ponoríte do podrobností o používaní fragmentov v aplikácii nastavení, je dôležité pochopiť, čo sú fragmenty a ako fungujú. V systéme Android je fragment modulárna časť aktivity, ktorá má svoj vlastný životný cyklus, rozloženie a správanie. Fragmenty je možné kombinovať, aby sa vytvorilo komplexnejšie používateľské rozhranie, a možno ich opätovne použiť v rôznych aktivitách.
Fragmenty sú užitočné v aplikáciách s nastaveniami, pretože vám umožňujú rozdeliť nastavenia na menšie, lepšie spravovateľné časti. Môžete mať napríklad fragment pre všeobecné nastavenia, ďalší pre nastavenia ochrany osobných údajov a ďalší pre nastavenia upozornení. Každý fragment môže byť navrhnutý a implementovaný nezávisle, vďaka čomu je kódová základňa organizovanejšia a jednoduchšia na údržbu.
Nastavenie projektu
Ak chcete začať používať fragmenty v aplikácii nastavení, musíte najprv nastaviť nový projekt Android. Android Studio môžete použiť na vytvorenie nového projektu s prázdnou aktivitou. Po vytvorení projektu budete musieť pridať potrebné závislosti na prácu s fragmentmi.
V tvojomstavať.gradlesúbor, uistite sa, že máte nasledujúce závislosti:
![2-(1-(2-Fluorobenzyl)piperidin-4-yl)-1H-benzo[d]imidazole](/uploads/44503/2-1-2-fluorobenzyl-piperidin-4-yl-1h-benzo-d21290.png)

implementácia 'androidx.appcompat:appcompat:1.4.1' implementácia 'androidx.fragment:fragment:1.4.1'
Tieto závislosti poskytnú potrebné triedy a rozhrania API na prácu s fragmentmi vo vašej aplikácii.
Vytváranie fragmentov pre nastavenia
Ďalším krokom je vytvorenie fragmentov pre vašu aplikáciu nastavení. Nový fragment môžete vytvoriť kliknutím pravým tlačidlom myši na balík projektu v aplikácii Android Studio a výberomNové>Fragment>Fragment (prázdny). Dajte svojmu fragmentu zmysluplný názov, ako naprGeneralSettingsFragmentaleboPrivacySettingsFragment.
Tu je príklad jednoduchej triedy fragmentov:
importovať android.os.Bundle; importovať android.view.LayoutInflater; importovať android.view.View; importovať android.view.ViewGroup; importovať androidx.fragment.app.Fragment; public class GeneralSettingsFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle SaveInstanceState) { // Nafúknutie rozloženia pre tento fragment return inflater.inflate(R.layout.fragment_general_settings, container, false); } }
V tomto príkladeGeneralSettingsFragmenttrieda rozširujeFragmenttriedu a má prednosťonCreateViewspôsob nafúknutia rozloženia pre fragment. Súbor rozloženiafragment_general_settings.xmlby mala byť vytvorená vres/layoutadresár.
Rozloženie pre fragmenty
Rozloženie každého fragmentu by malo byť navrhnuté tak, aby zobrazovalo príslušné nastavenia. Môžete použiť rôzne komponenty používateľského rozhrania ako naprTextView,Prepínač,CheckBox, aSpinnerna vytvorenie používateľského rozhrania nastavení.
Tu je príklad súboru rozloženia preGeneralSettingsFragment:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="16dp"> <TextView android:layout_widtent="w android:layout_height="wrap_content" android:text="Všeobecné nastavenia" android:textSize="24sp" android:textStyle="bold" /> <Prepnúť android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Povoliť <CheckBox" /> android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Zobraziť návod pri spustení" /> </LinearLayout>
Toto rozloženie zobrazuje názov sekcie všeobecných nastavení, prepínač na povolenie upozornení a začiarkavacie políčko na zobrazenie návodu pri spustení.
Pridávanie fragmentov do aktivity
Po vytvorení fragmentov a ich rozložení ich musíte pridať do hlavnej činnosti aplikácie nastavení. Môžete to urobiť pomocou aFragmentManagera aFragmentová transakcia.
Tu je príklad, ako pridať fragment do aktivity:
importovať androidx.appcompat.app.AppCompatActivity; importovať android.os.Bundle; importovať androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; public class SettingsActivity rozširuje AppCompatActivity { @Override protected void onCreate(Bundle SaveInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_settings); // Získanie FragmentManager FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); // Vytvorenie novej inštancie GeneralSettingsFragment GeneralSettingsFragment generalSettingsFragment = new GeneralSettingsFragment(); // Pridajte fragment do aktivity fragmentTransaction.add(R.id.fragment_container, generalSettingsFragment); fragmentTransaction.commit(); } }
V tomto príkladeNastaveniaAktivitatrieda rozširujeAppCompatActivitytrieda. VonCreatemetódou, dostanemeFragmentManagera začať aFragmentová transakcia. Potom vytvoríme novú inštanciuGeneralSettingsFragmenta pridajte ho do aktivity pomocoupridaťmetóda. Nakoniec transakciu potvrdíme, aby bol fragment viditeľný.
Navigácia medzi fragmentmi
V aplikácii nastavení môžu používatelia potrebovať prechádzať medzi rôznymi fragmentmi, aby získali prístup k rôznym sekciám nastavení. Navigáciu medzi fragmentmi môžete implementovať pomocou navigačnej zásuvky, spodnej navigačnej lišty alebo rozloženia kariet.
Tu je príklad, ako implementovať navigáciu pomocou dolného navigačného panela:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <FrameLayout android:id="@+id/fragment_container"match_parent" width_ent android:layout_height="0dp" android:layout_weight="1" /> <com.google.android.material.bottomnavigation.BottomNavigationView android:id="@+id/bottom_navigation" android:layout_width="match_parent" android:layout_white"androidground:background:wrap_ app:menu="@menu/bottom_navigation_menu" /> </LinearLayout>
V tomto rozložení máme aFrameLayoutna zobrazenie fragmentov a aBottomNavigationViewpre navigáciu. Theapp:menuatribút odkazuje na súbor prostriedkov ponuky, ktorý definuje položky v spodnej navigačnej lište.
Tu je zdrojový súbor ponukybottom_navigation_menu.xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/menu_general_settings" android:icon="@drawable/ic_general_settings" android:title="Všeobecné nastavenia" /> <item android:id="@+id/menu_privacy_settings" android:icon="@drawable/ic_privacy_settings" android:title="Nastavenia ochrany osobných údajov" /> <item android:id="@+id/menu_notification_settings" android:icon="@drawable/ic_notification_settings" android:title="Nastavenia upozornení" /> </menu>
Na ovládanie navigácie môžete pridaťOnNavigationItemSelectedListenerkBottomNavigationView:
importovať androidx.appcompat.app.AppCompatActivity; importovať android.os.Bundle; importovať androidx.fragment.app.Fragment; importovať androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; importovať com.google.android.material.bottomnavigation.BottomNavigationView; public class SettingsActivity rozširuje AppCompatActivity { @Override protected void onCreate(Bundle SaveInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_settings); BottomNavigationView bottomNavigationView = findViewById(R.id.bottom_navigation); bottomNavigationView.setOnNavigationItemSelectedListener(item -> { Fragment fragment = null; switch (item.getItemId()) { case R.id.menu_general_settings: fragment = new GeneralSettingsFragment(); break; case R.id.menu_privacy_settings: fragment = case new()); R.id.menu_notification_settings: fragment = new NotificationSettingsFragment() if (fragment != null) { FragmentManager fragmentManager = getSupportFragmentManager(); fragmentTransaction.commit( } return true }); // Štandardne zobrazí fragment všeobecných nastavení FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.add(R.id.fragment_container, new GeneralSettingsFragment()); fragmentTransaction.commit(); } }
V tomto kóde sme nastavili anOnNavigationItemSelectedListenerkBottomNavigationView. Keď je vybratá položka ponuky, vytvoríme zodpovedajúci fragment a nahradíme aktuálny fragment vFragmentContainers novým fragmentom.
Práca so životným cyklom fragmentov
Fragmenty majú svoj vlastný životný cyklus, ktorý je podobný životnému cyklu aktivity, ale je zložitejší. Je dôležité porozumieť životnému cyklu fragmentu, aby ste sa uistili, že sa vaša aplikácia správa správne.
Medzi hlavné metódy životného cyklu fragmentu patriaonCreate,onCreateView,onViewCreated,onStart,onResume,onPause,onStop,onDestroyView, aonDestroy. Tieto metódy môžete prepísať a vykonávať špecifické akcie v rôznych fázach životného cyklu fragmentu.
Môžete napríklad chcieť uložiť stav fragmentu do súboruonSaveInstanceStatemetódu a obnovte ju vonCreatealeboonViewCreatedmetóda.
importovať android.os.Bundle; importovať android.view.LayoutInflater; importovať android.view.View; importovať android.view.ViewGroup; importovať androidx.fragment.app.Fragment; public class GeneralSettingsFragment rozširuje Fragment { private static final String KEY_SWITCH_STATE = "stav_prepínača"; private boolean switchState; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (savedInstanceState != null) { switchState = SaveInstanceState.getBoolean(KEY_SWITCH_STATE); } } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle SaveInstanceState) { View view = inflater.inflate(R.layout.fragment_general_settings, container, false); Switch switchView = view.findViewById(R.id.switch_notifications); switchView.setChecked(switchState); switchView.setOnCheckedChangeListener((buttonView, isChecked) -> { switchState = isChecked; }); spätný pohľad; } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putBoolean(KEY_SWITCH_STATE, switchState); } }
V tomto príklade uložíme stav prepínača doonSaveInstanceStatemetódu a obnovte ju vonCreatemetóda.
Používanie našej knižnice fragmentov
Ako dodávateľ fragmentov ponúkame širokú škálu vysokokvalitných fragmentov, ktoré možno ľahko integrovať do vašej aplikácie nastavení. Máme napríklad fragmenty, ktoré sú špeciálne navrhnuté na spracovanie rôznych typov nastavení. Môžete preskúmať našu knižnicu fragmentov molekulárnych stavebných blokov, ako napr1-Metyl-3-(tiofén-2-yl)-1H-pyrazol-5-amín,2-(1-(2-fluórbenzyl)piperidín-4-yl)-1H-benzo[d]imidazol, akyselina 1-(4-chlórfenyl)-5-metyl-1H-pyrazol-4-karboxylová. Tieto fragmenty sú navrhnuté tak, aby poskytovali bezproblémový zážitok pre vašich používateľov a môžu výrazne skrátiť čas vývoja.
Kontaktujte nás kvôli obstarávaniu
Ak máte záujem o používanie našich fragmentov v aplikácii nastavení systému Android, odporúčame vám kontaktovať nás kvôli obstarávaniu. Náš tím odborníkov je pripravený pomôcť vám pri integrácii našich fragmentov do vášho projektu a poskytnúť potrebnú podporu. Či už ste malý startup alebo veľký podnik, môžeme vám ponúknuť riešenia, ktoré vyhovujú vašim špecifickým potrebám.
Referencie
- Dokumentácia pre vývojárov systému Android – Fragmenty
- Používateľská príručka pre Android Studio




