当前位置: 首页 > 面试题库 >

禁用SwipeRefreshLayout中的RecyclerView

籍兴文
2023-03-14
问题内容

我实现了SwipeRefreshLayout使用,RecyclerView并且需要在期间禁用适配器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());



 类似资料:
  • 我在SwipeRefreshLayout中使用了新的回收视图布局,遇到了一个奇怪的行为。当将列表滚动回顶部时,有时顶部的视图会被打断。 如果我现在尝试滚动到顶部,将触发拉刷新。 如果我尝试删除回收器视图周围的滑动刷新布局,问题就会消失。并且可以在任何手机上复制(不仅仅是L-Preview设备)。 这就是我的布局——行是由RecycleServiceAdapter(此列表中有2种视图类型)动态构建的

  • 我使用的是Horizontal ViewPager2,它里面有4个片段。每个片段都有一个回收器视图上的SwipeReFresLayout。我面临的问题是,当回收器视图位于顶部时,然后onClick on任何项目列表都不起作用。如果我向下滚动一点回收器视图,那么onClick就可以正常工作。当回收器视图位于顶部时,如果SwipeReFresLayout处于刷新状态,那么onClick就可以正常工作。

  • 我想用ListView实现滚动刷新功能。此外,在同一布局文件中还有其他视图元素,如果列表为空,则会显示这些元素。这是我的布局文件。问题是,当我向下滚动,然后尝试向上滚动,而不是一直滚动到顶部,然后刷新它只是刷新那里,向上滚动是不起作用的。

  • 我正在遵循Clojure.spec指南。我理解在使用clojure.spec/keys时声明必需和可选属性是可能的。 我不明白可有可无是什么意思。对我来说:OPT什么都不做。

  • 本文向大家介绍Android下拉刷新SwipeRefreshLayout控件使用方法,包括了Android下拉刷新SwipeRefreshLayout控件使用方法的使用技巧和注意事项,需要的朋友参考一下 我们知道现在的material design十分的流行,而SwipeRefreshLayout 就是原生的一个效果(也是Facebook下拉刷新效果)SwipeRefreshLayout 是一个下

  • 问题内容: 我想使用JPA(eclipselink)从数据库中获取数据。该数据库由许多其他来源更改,因此我想针对我执行的每个查找返回数据库。我已经阅读了许多有关禁用缓存的文章,但这似乎不起作用。有任何想法吗? 我正在尝试执行以下代码: 一==二是正确的,而我希望它是错误的。 我尝试将以下每个/所有内容添加到我的persistence.xml中 我也尝试过将@Cache注释添加到实体本身: 我误会了