Idan kuna haɓaka aikace-aikacen Android kuma kuna buƙatar nuna ingantaccen jerin abubuwa, RecyclerView shine mafi kyawun abokin ku. Wannan kayan aiki mai ƙarfi ba kawai juyin halitta na ListView ba ne, amma kuma yana gabatar da ingantacciyar hanyar daidaitawa da ƙima don nuna jeri ko grid bayanai. Amfani da shi yana ƙara zama gama gari tsakanin masu haɓakawa saboda babban aikin sa da sassauci.
A cikin wannan labarin, za mu nutse cikin duk abin da kuke buƙatar sani don ƙwarewar RecyclerView. Daga tushe zuwa cikakken aiwatarwa, gami da shawarwari masu amfani, gyare-gyare na ci gaba, da misalan aiki a duka Java da Kotlin. Idan kuna neman jagorar tsayawa ɗaya, kun zo wurin da ya dace.
Menene RecyclerView kuma me yasa yakamata kuyi amfani dashi?
RecyclerView wani bangare ne na kallon Android wanda ke ba ka damar nuna manyan kundin bayanai tare da ingantaccen aiki. An ƙirƙira shi don sake sarrafa ra'ayoyin da ba a iya gani akan allo, guje wa ƙirƙirar sabbin ra'ayoyi marasa mahimmanci kuma don haka inganta amfani da ƙwaƙwalwar ajiya.
Ba kamar wanda ya gabace shi ListView ba, RecyclerView yana raba ayyukansa zuwa ƙanana, sassa masu sake amfani da su, yana ba da ƙarin iko ga mai haɓakawa. Wannan gine-ginen da ya dogara da tsarin ViewHlder yana ba da damar mafi kyawun rabuwa na nauyi, yana haifar da mafi tsabta, ƙarin kiyayewa, da lambar ƙima. Don ƙarin koyo game da haɓaka app, duba jagorar mu akan sababbin kayan aiki a cikin Android.
Babban abubuwan da ke cikin RecyclerView
Don RecyclerView yayi aiki da kyau, kuna buƙatar aiwatar da maɓalli da yawa:
- RecyclerView: Ita ce akwati inda ake yin abubuwan. ViewGroup ne wanda ke haɗawa da daidaita sauran sassa.
- Adafta: Ita ce gada tsakanin bayanan bayanan da RecyclerView. Yana da alhakin ƙirƙira da haɗa ra'ayoyi don kowane kashi.
- Mai gani: Yana da alhakin adana ra'ayi na kowane kashi. Yana haɓaka aiki ta hanyar guje wa kiran da ba dole ba don nemoViewById.
- Manajan Layout: Yana bayyana yadda aka sanya abubuwa akan allon. Yana iya zama madaidaiciya, grid, ko ma na al'ada.
Fa'idodin amfani da RecyclerView
RecyclerView yana gabatar da manyan abubuwan haɓakawa akan ListView:
- Sake amfani da ra'ayoyi: Ana sake yin amfani da ra'ayi lokacin da suka ɓace daga allon, yana rage yawan ƙwaƙwalwar ajiya.
- Tallafin raye-raye: Hotunan raye-raye na asali don shigar da abubuwa, gogewa, da sabuntawa.
- Zane mai sassauƙa: Yin amfani da LayoutManager, zaku iya nuna lissafin kwance, jeri na tsaye, grid, ko ma nuni da abubuwa daban-daban.
- Haɗin CardView: Mafi dacewa don aiwatar da musaya dangane da Zane-zane.
Yadda ake saita RecyclerView a cikin aikin ku
Kafin yin coding, dole ne ka ƙara abubuwan da suka dace a cikin fayil ɗin build.gradle:
implementation 'androidx.recyclerview:recyclerview:1.4.0'
implementation 'androidx.cardview:cardview:1.0.0'
Yana da mahimmanci don tabbatar da cewa kuna amfani da nau'ikan da suka dace da minSdk da harhadaSdk. Sigar RecyclerView 1.4.0, alal misali, yana buƙatar matakin API 35 ko sama don wasu fasaloli.
RecyclerView XML Tag
A cikin ayyukanku ko guntun XML, ayyana RecyclerView kamar kowane ra'ayi:
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false" />
Ƙayyade tsarin kowane kashi
Ana bayyana bayyanar kowane abu ta wani fayil na XML daban, misali abu_product.xml. Zai iya zama mai sauƙi kamar TextView ko ƙarin hadaddun ta amfani da CardView tare da abubuwa da yawa.
<androidx.cardview.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
card_view:cardElevation="4dp"
card_view:cardCornerRadius="8dp"
android:layout_margin="8dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
<TextView
android:id="@+id/textNombre"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nombre del producto"
android:textSize="18sp" />
<TextView
android:id="@+id/textDescripcion"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Descripción breve" />
</LinearLayout>
</androidx.cardview.widget.CardView>
Ƙirƙirar Mai Dubawa
ViewHlder aji ne wanda ke tattara ra'ayi ɗaya da abubuwan haɗin sa. Duk lokacin da aka nuna wani abu, Adaftan zai yi amfani da misalin ViewHolder da aka sanya wa wannan kallon. Ƙara koyo game da amfani da lissafi a ciki Android TV apps.
A Kotlin zai zama wani abu kamar haka:
class ProductoViewHolder(view: View): RecyclerView.ViewHolder(view) {
val nombre: TextView = view.findViewById(R.id.textNombre)
val descripcion: TextView = view.findViewById(R.id.textDescripcion)
}
Ƙirƙirar Adafta
Adafta ita ce zuciyar RecyclerView, yayin da yake haɗa bayanai zuwa ra'ayoyi. Yana da alhakin ƙirƙirar abubuwan ViewHlder da ɗaure bayanai a kowane matsayi.
class ProductosAdapter(private val lista: List<Producto>): RecyclerView.Adapter<ProductoViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ProductoViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_producto, parent, false)
return ProductoViewHolder(view)
}
override fun getItemCount(): Int = lista.size
override fun onBindViewHolder(holder: ProductoViewHolder, position: Int) {
val producto = lista
holder.nombre.text = producto.nombre
holder.descripcion.text = producto.descripcion
}
}
Hanyoyi uku na tilas na kowane adaftar sune:
- onCreateViewHolder: Kumburi na shimfidar kowane abu.
- onBindViewHlder: Yana ɗaure bayanai zuwa Mai gani.
- samunItemCount: Yana dawo da jimlar adadin abubuwa.
Yin amfani da LayoutManager
LayoutManager yana bayyana yadda ake sanya abubuwa a cikin RecyclerView. Android tana ba mu zaɓuɓɓuka da yawa ta tsohuwa:
- Mai sarrafa Layout Linear: Lissafin tsaye ko a kwance.
- GridLayout Manager: Grid na ginshiƙai ko layuka.
- StaggeredGridLayout Manager: Grid wanda ke ba da damar abubuwa masu girma dabam, manufa don ƙirar nau'in Pinterest.
Fara RecyclerView a cikin ayyukanku
Da zarar an bayyana duk abubuwan da ke sama, kuna buƙatar saita RecyclerView a cikin fayil ɗin BabbanAiki.kt o BabbanAiki.java:
val recyclerView = findViewById<RecyclerView>(R.id.recyclerView)
recyclerView.layoutManager = LinearLayoutManager(this) // o GridLayoutManager
recyclerView.adapter = ProductosAdapter(listaDeProductos)
Ɗauki danna abubuwan da suka faru akan abubuwa
Ɗaya daga cikin tambayoyin gama gari lokacin aiki tare da RecyclerView shine yadda ake kama hulɗar masu amfani. Akwai manyan hanyoyi guda biyu:
- Daga cikin adaftar: Yana da sauƙi, amma ba mai sauƙi ba.
- Daga wajen adaftar ta amfani da musaya: Ita ce mafi shawarar hanya.
Misalin dubawa don ɗaukar dannawa:
interface OnProductoClickListener {
fun onProductoClick(producto: Producto)
}
Adaftar ku zai karɓi wannan keɓancewa azaman siga kuma daga hanyar onBindViewHolder
za ku aiwatar da hanyar onProductoClick
lokacin da aka danna abu. Idan kuna neman ƙarin misalan abubuwan masu amfani, zaku iya bincika Yadda ake sauraron rediyo akan Android Auto.
Advanced RecyclerView Keɓancewa
Bayan nuna jeri, RecyclerView yana ba da damar gyare-gyare kamar:
- Ra'ayoyi da yawa don nau'ikan abubuwa daban-daban: Mafi dacewa don haɗa banners, samfurori, tallace-tallace, tallace-tallace, da dai sauransu.
- raye-raye na al'ada: Kuna iya ayyana raye-rayen ku lokacin ƙara ko cire abubuwa.
- Kayan ado: Tare da ItemDecoration zaka iya ayyana gefe, masu raba ko layi tsakanin abubuwa.
- gungura mara iyaka: Aiwatar da lodi mai ci gaba lokacin da aka kai ƙarshen RecyclerView.
RecyclerView na iya aiki tare da kowane saitin bayanai, Daga sauƙin rubutun rubutu zuwa ƙarin hadaddun lissafin abubuwa tare da halaye masu yawa kamar hotuna, ayyuka, kwatancin, farashi, da sauransu. Aikace-aikace kyauta don yin tsare-tsare akan Android.
Shin RecyclerView yana aiki tare da CardView kawai?
A'a. Ko da yake an saba amfani da su tare don bin ƙa'idodin Ƙira, Kuna iya amfani da kowane shimfidar wuri a cikin abun: LinearLayout, ConstraintLayout, FrameLayout, da dai sauransu.
Abu mai mahimmanci shine a ayyana fayil ɗin XML wanda ke wakiltar yadda kowane nau'in ya kamata ya kasance.
Sabuntawa da dacewa
Sabbin nau'ikan RecyclerView, kamar 1.4.0, sun haɗa da haɓaka ayyuka, sabbin APIs, da ingantaccen haɗin kai tare da sauran ɗakunan karatu na Jetpack na Android.
Wasu muhimman labarai:
- Taimakon ƙimar wartsake mai dacewa.
- Ingantawa a cikin hadaddun rayarwa.
- Haɓakawa tare da Jetpack Compose da ViewPager2.
Abubuwan amfani gama gari don RecyclerView
RecyclerView yana da matuƙar dacewa. Ga wasu misalan amfani na yau da kullun:
- Lissafin tuntuɓar ko saƙonni.
- Grids samfurin a cikin kantin kan layi.
- Labarai masu ƙarfi ko labaran bulogi.
- Hotuna a cikin gallery.
- Abubuwan multimedia kamar bidiyo ko sauti.
Rukunin aikace-aikace na iya samun rumbun RecyclerViews da yawa, kowanne yana da ƙayyadaddun tsarin sa. Kyakkyawan hanya don nuna abun cikin multimedia shine kalli DTT akan Akwatin TV na Android.
Mafi kyawun ayyuka tare da RecyclerView
Lokacin aiki tare da RecyclerView, kiyaye shawarwari masu zuwa a zuciya:
- Amfani
ViewBinding
oDataBinding
don guje wa kurakurai tare da FindViewById. - Guji sabunta jerin duka idan kun canza abu ɗaya kawai.
- Kar a yi ayyuka masu tsada a ciki akanBindViewHlder. Shirya bayanan tukuna.
- Idan akwai nau'ikan kallo da yawa, yi amfani
getItemViewType()
daidai.
RecyclerView ba kawai muhimmin bangare ne na ci gaban Android na zamani ba, har ma da tushe wanda aka gina manyan mu'amala masu fa'ida da inganci akansa. Ƙimar sa, aiki da madaidaicin sa sun sa ya zama cikakke ga kowane aikace-aikacen da ke buƙatar nuna maimaituwa ko abun ciki mai ƙarfi. Tare da ingantaccen aiwatarwa, zaku iya cimma manyan musaya masu ƙarfi waɗanda ke sadar da santsi da ƙwarewar mai amfani.