How to disable RecyclerView Items from clicking

后端 未结 9 878
迷失自我
迷失自我 2020-12-31 04:00

I am using Floating Action Button. I want to disable Recyclerview Items from Clicking when i press FAB button. I tried this method but not working setClickable(true);<

9条回答
  •  無奈伤痛
    2020-12-31 04:42

    Working solution with RecyclerView.OnItemTouchListener:

    @SuppressLint("ClickableViewAccessibility")
    @BindingAdapter("itemsClickable")
    fun setRecyclerViewClickable(view: RecyclerView, clickable: Boolean) {
        view.isEnabled = clickable
        if (!clickable) {
            val itemTouchListener = object : RecyclerView.OnItemTouchListener {
                override fun onTouchEvent(rv: RecyclerView?, e: MotionEvent?) {
    
                }
    
                override fun onInterceptTouchEvent(rv: RecyclerView?, e: MotionEvent?): Boolean {
                    return rv?.isEnabled == false
                }
    
                override fun onRequestDisallowInterceptTouchEvent(disallowIntercept: Boolean) {
    
                }
    
            }
            view.addOnItemTouchListener(itemTouchListener)
            view.tag = itemTouchListener
        } else {
            (view.tag as? RecyclerView.OnItemTouchListener)?.let {
                view.requestDisallowInterceptTouchEvent(true)
                view.removeOnItemTouchListener(it)
            }
        }
    }
    

提交回复
热议问题