[英]Disable SwipeRefreshLayout when horizintal scroll handled in two-way Recyclerview
[英]Disable click on RecyclerView inside a SwipeRefreshLayout
我使用RecyclerView
實現了SwipeRefreshLayout
,我需要在OnRefreshListener
期間禁用我的適配器項。
我嘗試了以下方法,但點擊正常發生:
mRecyclerView.setEnabled(false);
mRecyclerView.setClickable(false);
使用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());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.