30-50% off hundreds of digital assets! WordPress themes, video, music and more 30-50% Off Go to Sale
Advertisement
  1. Code
  2. Android Lollipop
Code

Začínáme s RecyclerView a CardView na Androidu

by
Difficulty:IntermediateLength:LongLanguages:

Czech (Čeština) translation by Karel Krkoska (you can also view the original English article)

Pokud máte zájem o vytvoření aplikace pro Android, která využívá seznamy pro zobrazení dat, Android Lollipop nabízí dva nové widgety, které usnadňují život, RecyclerView a CardView. Díky těmto widgetům je velmi snadné poskytnout vaší aplikaci vzhled a pocit, který odpovídá pokynům uvedeným v specifikaci návrhu materiálu společnosti Google.

Předpoklady

Chcete-li pokračovat, měli byste používat nejnovější verzi aplikace Android Studio. Můžete ji získat na webu Android Developer.

1. Podpora starší verze

V době psaní méně než 2% zařízení Android spustila Android Lollipop. Díky knihovně podpory v7 však můžete použít nástroje RecyclerView a CardView na zařízeních se staršími verzemi systému Android přidáním následujících částí do oddílu dependencies v souboru build.grade projektu:

2. Tvorba CardView

CardView je ViewGroup Jako každá ViewGroup, může být přidána do vaší Activity nebo Fragment pomocí layout XML souboru.

Chcete-li vytvořit prázdnou kartu CardView, budete muset do rozvržení XML přidat následující kód, jak je znázorněno v následujícím úryvku:

Jako realističtější příklad nyní vytvořme LinearLayout a do něj vložte kartu CardView. CardView může reprezentovat například osobu a obsahovat následující:

  • TextView pro zobrazení jména osoby
  • TextView pro zobrazení věku osoby
  • ImageView pro zobrazení fotografie osoby

Takhle by XML mělo vypadat:

Pokud se tento XML používá jako rozložení Activity, pole TextView a ImageView jsou nastavena na smysluplné hodnoty, tak to bude způsobeno v zařízení Android:

A Stand-alone Card

3. Vytvoření RecyclerView

Krok 1: Definování v rozvržení

Použití instance RecyclerView je o něco složitější. Ačkoliv definování v XML rozhraní je jednoduché. Můžete jej definovat v rozvržení následujícím způsobem:

Chcete-li jej získat v Activity, použijte následující úryvek:

Pokud jste si jisti, že velikost aplikace RecyclerView se nezmění, můžete zlepšit výkon:

Krok 2: Použití LayoutManageru

Na rozdíl od ListView potřebuje RecyclerView LayoutManager spravovat umístění jeho položek. Můžete vymezit vlastní LayoutManager rozšířením třídy RecyclerView.LayoutManager. Ve většině případů však můžete jednoduše použít jednu z předdefinovaných podtříd LayoutManager:

  • LinearLayoutManager
  • GridLayoutManager
  • StaggeredGridLayoutManager

V tomto tutoriálu budu používat LinearLayoutManager. Tato podtřída LayoutManager ve výchozím nastavení vytvoří RecyclerView jako ListView.

Krok 3: Definování dat

Stejně jako ListView potřebuje RecyclerView adaptér pro přístup k jeho datům. Ale předtím, než vytvoříme adaptér, vytvoříme data, s nimiž budeme pracovat. Vytvořte jednoduchou třídu, která reprezentuje osobu a potom napište metodu pro inicializaci objektů seznamu osob:

Krok 4: Vytvoření adaptéru

Chcete-li vytvořit adaptér, který RecyclerView může použít, musíte rozšířit RecyclerView.Adapter. Tento adaptér sleduje vzhled návrhu držitele pohledu, což znamená, že definujete vlastní třídu, která rozšiřuje RecyclerView.ViewHolder. Tento vzor minimalizuje počet volání na nákladnou metodu findViewById.

Dříve v tomto kurzu jsme již definovali rozvržení XML pro kartu CardView, která představuje osobu. Tuto dispozici použijeme znovu. Uvnitř konstruktoru našeho vlastního ViewHolder inicializujte pohledy, které patří k položkám našeho RecyclerView.

Dále přidejte konstruktor do vlastního adaptéru tak, aby obsahoval popisovač, který zobrazuje RecyclerView. Vzhledem k tomu, že naše data jsou ve formě objektů List Person, použijte následující kód:

RecyclerView.Adapter má tři abstraktní metody, které musíme přepsat. Začneme metodou getItemCount. Tím by se měl vrátit počet položek v datech. Vzhledem k tomu, že naše data jsou ve formě seznamu, stačí pouze volat metodu size v objektu List:

Poté přepište metodu onCreateViewHolder. Jak naznačuje jeho název, tato metoda se nazývá, když je třeba inicializovat vlastní prohlížeč ViewHolder. Určujeme rozvržení, které by měla použít každá položka RecyclerView. To se provádí nafouknutím rozvržení pomocí LayoutInflater, předáním výstupu konstruktoru ViewHolder.

Přepište příkaz onBindViewHolder, který specifikuje obsah každé položky RecyclerView. Tato metoda je velmi podobná metodě getView adaptéru ListView. V našem příkladu zde musíte nastavit hodnoty jmen, věku a fotografických polí CardView.

Konečně je potřeba přepsat metodu onAttachedToRecyclerView. Prozatím můžeme jednoduše použít tuto superclassovou metodu, jak je uvedeno níže.

Krok 5: Použití adaptéru

Nyní, když je adaptér připraven, přidejte následující kód do vaší Activity, aby inicializoval a použil adaptér voláním konstruktoru adaptéru a metodou setAdapter RecyclerView:

Step 6: Compile and Run

Když spustíte příklad aplikace RecyclerView v zařízení Android, měli byste vidět něco podobného následujícímu výsledku.

Shrnutí

V tomto tutoriálu jste se naučili, jak používat CardView a RecyclerView, které byly představeny v Android Lollipop. Také jste viděli příklady toho, jak tyto widgety využít v aplikacích Material Design. Mějte na paměti, že i když RecyclerView dokáže téměř všechno, co může ListView pro malé datové množiny používat, je ještě preferováno použití ListView, protože vyžaduje méně řádků kódu.

Další informace o třídách CardView a RecyclerView naleznete v příručce Android Developers Reference.


Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.