7

के अंदर रीसाइक्लर व्यू पर क्लिक करें अक्षम करें मैंने को RecyclerView का उपयोग करके कार्यान्वित किया है और मुझे चाहिए कि मेरे एडाप्टर आइटम OnRefreshListener के दौरान अक्षम हैं।एक SwipeRefreshLayout

मैं निम्नलिखित दृष्टिकोण कोशिश की, लेकिन क्लिक सामान्य रूप से होती है:

mRecyclerView.setEnabled(false); 
mRecyclerView.setClickable(false); 

उत्तर

14

उपयोग तर्क हम ListAdapter के साथ किया था। यह उनके माता-पिता के बजाय एडाप्टर आइटम अक्षम कर देगा।

public interface RecyclerViewItemEnabler{ 
    public boolean isAllItemsEnabled(); 
    public boolean getItemEnabled(int position); 
} 

और कार्यान्वयन इस तरह दिखना चाहिए:

public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> implements RecyclerViewItemEnabler{ 

    @Override 
    public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) { 
     super.onViewAttachedToWindow(holder); 
     holder.itemView.setEnabled(isAllItemsEnabled()); 
     //or do this in onBindViewHolder() 
    } 
    @Override 
    public boolean isAllItemsEnabled(){ return mAllEnabled; } 

    @Override 
    public boolean getItemEnabled(int position){ 
     return true; 
    } 
    public void setAllItemsEnabled(boolean enable){ 
     mAllEnabled = enable; 
     notifyItemRangeChanged(0, getItemCount()); 
    } 

} 

उपयोग: mRecylerAdapter.setAllItemsEnabled(!mSwipeRefreshLayout.isRefreshing());

+0

वर्क्स ठीक! बहुत बहुत धन्यवाद @ निकोलाडेस्पोटोस्की! – falvojr

+1

किसी कारण से यह मेरे लिए काम नहीं करता है। न केवल मैं प्रत्येक आइटम पर क्लिक कर सकता हूं लेकिन सभी आइटम भी क्लिक पर एक साथ झपकी देते हैं। मैंने इस सटीक कोड को लागू किया, सीधे आगे लगता है लेकिन ... – iBobb

संबंधित मुद्दे