XRecycleview 上拉加载 下拉刷新 就是把 recycleview 改成XRecycleview 。XRecycleview本身自带下拉刷新 这是我们要 添加一个监听 用来做上拉加载
recyclerView.setLoadingListener(this);
@Override
public void onRefresh() {
recyclerView.refreshComplete();
//下拉刷新完成
}
@Override
public void onLoadMore() {
//上拉加载完成
//recyclerView.refreshComplete();
}
注意 这里上拉加载onLoadMore()里面最好不要写代码 因为写的话 会很快刷新完成 看不到效果
完整代码 Activity
public class Main3Activity extends Fragment implements XRecyclerView.LoadingListener { String path=" http://tingapi.ting.baidu.com/v1/restserver/ting?method=baidu.ting.billboard.billList&type=1&size=20&offset=0 "; private XRecyclerView recyclerView; ImageView img; TextView text,text2; MyAdapter adapter; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view=View.inflate(getActivity(),R.layout.activity_main3,null); recyclerView=view.findViewById(R.id.recycleview); recyclerView.setLoadingListener(this); //recyclerView.setPullRefreshEnabled(true); //recyclerView.setLoadingMoreEnabled(true); //recyclerView.refreshComplete(); img=view.findViewById(R.id.img3); text=view.findViewById(R.id.text3); text2=view.findViewById(R.id.text4); getData(); return view; } public void getData(){ OkHttp3Utils.doGet(path, new GsonObjectCallback<Bean>() { @Override public void onUi(Bean bean) { adapter= new MyAdapter(bean.getSong_list(),getActivity()); recyclerView.setAdapter(adapter); recyclerView.setLayoutManager(new StaggeredGridLayoutManager(1,StaggeredGridLayoutManager.VERTICAL)); adapter.setOnItemClieckLinster(new MyAdapter.OnItemClieckLinster() { @Override public void onItemClickListener(View view, int pos) { Intent intent=new Intent(getActivity(),Main4Activity.class); startActivity(intent); } @Override public void onItemLongClickListener(View view, int pos) { Toast.makeText(getActivity(), "长按点击事件" + pos , Toast.LENGTH_SHORT).show(); } }); } @Override public void onFailed(Call call, IOException e) { } }); } @Override public void onRefresh() { recyclerView.refreshComplete(); //下拉刷新完成 } @Override public void onLoadMore() { //上拉加载完成 //recyclerView.refreshComplete(); } }
Adapter 类
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder>{ List<Bean.SongListBean> list=new ArrayList<>(); Context context; public MyAdapter(List<Bean.SongListBean> list, Context context) { this.list = list; this.context = context; } //定义如下接口 public interface OnItemClieckLinster{ void onItemClickListener(View view , int pos); void onItemLongClickListener(View view , int pos); } private OnItemClieckLinster onItemClieckLinster; public void setOnItemClieckLinster(OnItemClieckLinster listener){ this.onItemClieckLinster = listener; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(R.layout.item,parent,false); ViewHolder vh = new ViewHolder(view); return vh; } @Override public void onBindViewHolder(final ViewHolder holder, final int position) { holder.text.setText(list.get(position).getTitle()); holder.text2.setText(list.get(position).getArtist_name()); //Glide.with(context).load(list.get(position)).into(vh.img); ImageLoader.getInstance().displayImage(list.get(position).getPic_big(),holder.img); if(onItemClieckLinster!=null){ holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onItemClieckLinster.onItemClickListener(holder.itemView,position); } }); //onitemlongclicklistener holder.itemView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { onItemClieckLinster.onItemLongClickListener(holder.itemView,position); return false; } }); } } @Override public int getItemCount() { return list.size(); } class ViewHolder extends RecyclerView.ViewHolder{ ImageView img; TextView text,text2; public ViewHolder(View itemView) { super(itemView); img=itemView.findViewById(R.id.img3); text=itemView.findViewById(R.id.text3); text2=itemView.findViewById(R.id.text4); } } }