gpt4 book ai didi

java - 禁用单击 SwipeRefreshLayout 内的 RecyclerView

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:17:09 26 4
gpt4 key购买 nike

我使用 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());

关于java - 禁用单击 SwipeRefreshLayout 内的 RecyclerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27927830/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com