Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Android

จะใช้รายการไม่มีที่สิ้นสุดกับ RecyclerView ใน Android โดยใช้ Kotlin ได้อย่างไร


ตัวอย่างนี้สาธิตวิธีการใช้รายการไม่รู้จบด้วย RecyclerView ใน Android โดยใช้ Kotlin

ขั้นตอนที่ 1 − สร้างโครงการใหม่ใน Android Studio ไปที่ไฟล์ ⇒ โครงการใหม่และกรอกรายละเอียดที่จำเป็นทั้งหมดเพื่อสร้างโครงการใหม่

ขั้นตอนที่ 2 − เพิ่มรหัสต่อไปนี้ใน res/layout/activity_main.xml

 

ขั้นตอนที่ 3 − เพิ่มรหัสต่อไปนี้ใน src/MainActivity.kt

<ก่อน> นำเข้า android.os.Bundleimport android.os.Handlerimport androidx.appcompat.app.AppCompatActivityimport androidx.recyclerview.widget.LinearLayoutManagerimport androidx.recyclerview.widget.RecyclerViewclass MainActivity:AppCompatViewActivity () { lateinit Recycler recycler RecyclerViewAdapter var rowsArrayList:ArrayList =ArrayList() var isLoading =false override fun onCreate (savedInstanceState:Bundle?) { super.onCreate (savedInstanceState) setContentView (R.layout.activity_main) title ="KotlinAppViewBykerId" recyclerId (R) .id.recyclerView) populateData () initAdapter () initScrollListener () } ความสนุกส่วนตัว initScrollListener () { recyclerView.addOnScrollListener (วัตถุ:RecyclerView.OnScrollListener () { แทนที่ความสนุก onScrolled (recyclerView:RecyclerView, dy::Int) super.onScrolled(recyclerView, dx, dy) val linearLayoutManager =recycler View.layoutManager เป็น LinearLayoutManager หรือไม่ if (!isLoading) { if (linearLayoutManager !=null &&linearLayoutManager.findLastCompletelyVisibleItemPosition() ==rowsArrayList.size − 1) { //ด้านล่างของรายการ! loadMore () isLoading =จริง } } } }) } ความสนุกส่วนตัว initAdapter () { recyclerViewAdapter =RecyclerViewAdapter (rowsArrayList) recyclerView.layoutManager =LinearLayoutManager (applicationContext) recyclerView.adapter =recyclerViewAdapter () ความสนุกส่วนตัวเติมข้อมูลใน .9) { rowsArrayList.add ("Number $i") } } ความสนุกส่วนตัว loadMore () { rowsArrayList.add (null.toString ()) recyclerViewAdapter.notifyItemInserted (rowsArrayList.size − 1) val handler =Handler () ตัวจัดการ postDelayed (เรียกใช้ได้ { rowsArrayList.removeAt (rowsArrayList.size - 1) val scrollPosition =rowsArrayList.size recyclerViewAdapter.notifyItemRemoved (scrollPosition) var currentSize =scrollPosition val nextLimit =currentSize + 10 ในขณะที่ (currentSize) แถว 1

ขั้นตอนที่ 4 − สร้างคลาสใหม่ RecyclerViewAdapter.kt และเพิ่มรหัสต่อไปนี้ -

<ก่อนหน้า>นำเข้า android.view.LayoutInflaterimport android.view.Viewimport android.view.ViewGroupimport android.widget.ProgressBarimport android.widget.TextViewimport androidx.annotation.NonNullimport androidx.recyclerview.widget.RecyclerViewimport androidx.recyclerview.widget.RecyclerViewho ตัวสร้างภายใน RecyclerViewAdapter (รายการวาลส่วนตัว:รายการ ) :RecyclerView.Adapter () { วาลส่วนตัว viewItemType =0 @NonNull แทนที่ความสนุกบนCreateViewHolder ( @NonNull parent:ViewGroup, viewType:Int ):ViewHolder { return if ( viewType ==viewItemType) { val view =LayoutInflater.from (parent.context).inflate (R.layout.item_row, parent, false) ItemViewHolder (ดู) } อื่น ๆ { val view =LayoutInflater.from (parent.context) .inflate (R.layout.item_loading, parent, false) LoadingViewHolder (มุมมอง) } } แทนที่ความสนุก onBindViewHolder(@NonNull viewHolder:ViewHolder, ตำแหน่ง:Int) { if (viewHo) lder คือ ItemViewHolder) { populateItemRows (viewHolder, position) } else if (viewHolder is LoadingViewHolder) { showLoadingView (viewHolder, position) } } แทนที่ fun getItemViewType (ตำแหน่ง:Int):Int { return viewItemType } ตัวสร้างภายใน ItemViewHolder ภายในส่วนตัว (@ NonNull itemView:ดู) :ViewHolder (itemView) { ภายใน var tvItem:TextView =itemView.findViewById (R.id.textViewItem) } คลาสส่วนตัว LoadingViewHolder ตัวสร้างภายใน (itemView:ดู) :ViewHolder (itemView) { var ProgressBar:ProgressBar =itemView .findViewById (R.id.progressBar) } แทนที่ fun getItemCount ():Int { return itemList.size } ความสนุกส่วนตัว showLoadingView (viewHolder:LoadingViewHolder ตำแหน่ง:Int) {} ความสนุกส่วนตัว populateItemRows (viewHolder:ItemViewHolder ตำแหน่ง:Int) { val item =itemList[position] viewHolder.tvItem.text =item }}

ขั้นตอนที่ 5 − สร้างไฟล์ทรัพยากรเลย์เอาต์ item_row.xml และเพิ่มสิ่งต่อไปนี้ -

 

ขั้นตอนที่ 6 − สร้างไฟล์ทรัพยากรเลย์เอาต์ item_loading.xml และเพิ่มสิ่งต่อไปนี้ -

 

ขั้นตอนที่ 7 − เพิ่มรหัสต่อไปนี้ใน androidManifest.xml

     <หมวดหมู่ android:name=" android.intent.category.LAUNCHER" />   

มาลองเรียกใช้แอปพลิเคชันของคุณกัน ฉันคิดว่าคุณได้เชื่อมต่ออุปกรณ์มือถือ Android จริงกับคอมพิวเตอร์ของคุณ ในการรันแอพจาก android studio ให้เปิดไฟล์กิจกรรมของโปรเจ็กต์ของคุณแล้วคลิกไอคอน Run จะใช้รายการไม่มีที่สิ้นสุดกับ RecyclerView ใน Android โดยใช้ Kotlin ได้อย่างไร จากแถบเครื่องมือ เลือกอุปกรณ์มือถือของคุณเป็นตัวเลือก จากนั้นตรวจสอบอุปกรณ์มือถือของคุณซึ่งจะแสดงหน้าจอเริ่มต้นของคุณ

จะใช้รายการไม่มีที่สิ้นสุดกับ RecyclerView ใน Android โดยใช้ Kotlin ได้อย่างไร

จะใช้รายการไม่มีที่สิ้นสุดกับ RecyclerView ใน Android โดยใช้ Kotlin ได้อย่างไร