本文共 7650 字,大约阅读时间需要 25 分钟。
recyclerView.setLayoutManager(new FullyGridLayoutManager(activity, 3)); adapter = new DouBookAdapter(activity); recyclerView.setAdapter(adapter); //加载更多 adapter.setMore(R.layout.view_recycle_more, new RecyclerArrayAdapter.OnMoreListener() { @Override public void onMoreShow() { if (NetworkUtils.isConnected()) { if (adapter.getAllData().size() > 0) { getTopMovieData(mType, adapter.getAllData().size(), adapter.getAllData().size() + 21); } else { adapter.pauseMore(); } } else { adapter.pauseMore(); Toast.makeText(activity, "网络不可用", Toast.LENGTH_SHORT).show(); } } @Override public void onMoreClick() { } }); //设置没有数据 adapter.setNoMore(R.layout.view_recycle_no_more, new RecyclerArrayAdapter.OnNoMoreListener() { @Override public void onNoMoreShow() { if (NetworkUtils.isConnected()) { adapter.resumeMore(); } else { Toast.makeText(activity, "网络不可用", Toast.LENGTH_SHORT).show(); } } @Override public void onNoMoreClick() { if (NetworkUtils.isConnected()) { adapter.resumeMore(); } else { Toast.makeText(activity, "网络不可用", Toast.LENGTH_SHORT).show(); } } }); //设置错误 adapter.setError(R.layout.view_recycle_error, new RecyclerArrayAdapter.OnErrorListener() { @Override public void onErrorShow() { adapter.resumeMore(); } @Override public void onErrorClick() { adapter.resumeMore(); } }); //刷新 recyclerView.setRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { if (NetworkUtils.isConnected()) { getTopMovieData(mType , 0 , 30); } else { recyclerView.setRefreshing(false); Toast.makeText(activity, "网络不可用", Toast.LENGTH_SHORT).show(); } } });
private OnSwipeMenuListener listener; public void setOnSwipeMenuListener(OnSwipeMenuListener listener) { this.listener = listener; }
View.OnClickListener clickListener = new View.OnClickListener() { @Override public void onClick(View v) { switch (v.getId()){ case R.id.btn_del: if (null != listener) { listener.toDelete(getAdapterPosition()); } break; case R.id.btn_top: if (null != listener) { listener.toTop(getAdapterPosition()); } break; } }};btn_del.setOnClickListener(clickListener);btn_top.setOnClickListener(clickListener);
adapter.setOnSwipeMenuListener(new OnSwipeMenuListener() { //删除功能 @Override public void toDelete(int position) { adapter.getAllData().remove(position); adapter.notifyItemRemoved(position);//推荐用这个 } //置顶功能 @Override public void toTop(int position) { //先移除那个位置的数据,然后将其添加到索引为0的位置,然后刷新数据 if (position > 0 && adapter.getAllData().size()>position) { Person person = adapter.getAllData().get(position); adapter.getAllData().remove(person); adapter.notifyItemInserted(0); adapter.getAllData().add(0, person); adapter.notifyItemRemoved(position + 1); if (linearLayoutManager.findFirstVisibleItemPosition() == 0) { recyclerView.scrollToPosition(0); } } }});
mCallback = new DefaultItemTouchHelpCallback(new DefaultItemTouchHelpCallback.OnItemTouchCallbackListener() { @Override public void onSwiped(int adapterPosition) { // 滑动删除的时候,从数据库、数据源移除,并刷新UI if (personList != null) { personList.remove(adapterPosition); adapter.notifyItemRemoved(adapterPosition); } } @Override public boolean onMove(int srcPosition, int targetPosition) { if (personList != null) { // 更换数据库中的数据Item的位置 boolean isPlus = srcPosition < targetPosition; // 更换数据源中的数据Item的位置 Collections.swap(personList, srcPosition, targetPosition); // 更新UI中的Item的位置,主要是给用户看到交互效果 adapter.notifyItemMoved(srcPosition, targetPosition); return true; } return false; }});mCallback.setDragEnable(true);mCallback.setSwipeEnable(true);ItemTouchHelper itemTouchHelper = new ItemTouchHelper(mCallback);itemTouchHelper.attachToRecyclerView(recyclerView);
//设置加载中recyclerView.showProgress();//设置有数据展示recyclerView.showRecycler();//设置为空recyclerView.setEmptyView(R.layout.view_custom_empty_data);recyclerView.showEmpty();//设置错误recyclerView.setErrorView(R.layout.view_custom_data_error);recyclerView.showError();LinearLayout ll_error_view = (LinearLayout) recyclerView.findViewById(R.id.ll_error_view);ll_error_view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { }});//设置网络错误recyclerView.setErrorView(R.layout.view_custom_network_error);recyclerView.showError();LinearLayout ll_set_network = (LinearLayout) recyclerView.findViewById(R.id.ll_set_network);ll_set_network.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(NetworkUtils.isConnected()){ initData(); }else { Intent intent = new Intent(Settings.ACTION_WIRELESS_SETTINGS); startActivity(intent); } }});
转载地址:http://pafbm.baihongyu.com/