Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
274 views
in Technique[技术] by (71.8m points)

android - Disabling RecyclerView Item onClick while doing background job

I'm doing an Android app using Kotlin. I want to disable onClick from RecyclerView while doing background task (API calls). After finish update then click should be abled. How can I do this ?

fun bind(job: PrintJobData, listener: OnHistoryListFragmentInteractionListener?) {

   itemView.setOnClickListener {

      listener?.onListFragmentInteraction(job)

   }
}

interface OnHistoryListFragmentInteractionListener {

    fun onListFragmentInteraction(item: PrintJobData)

}
question from:https://stackoverflow.com/questions/65925498/disabling-recyclerview-item-onclick-while-doing-background-job

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You should be able to use itemView.setEnabled(false) to disable the clicks, then call setEnabled(true) to re-enable the clicks.

For Kotlin I believe its itemView.isEnabled = {false | true}

Make sure these calls occur on the UI thread. Example using your comment:

   private fun updateUsersJobs() 
   { 
     swipeContainer?.isRefreshing = true 
     
     itemView.isEnabled = false
    
     model?.updateUsersJobs(this, 
     { 
       activity?.runOnUiThread 
       { 
         swipeContainer?.isRefreshing = false 
         itemView.isEnabled = true
       } 
     }, 
     { error -> activity?.runOnUiThread 
       { 
         swipeContainer?.isRefreshing = false
         itemView.isEnabled = true
       }
     };
  }

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...