package com.ly.supermvp.delegate; import android.support.v7.widget.DefaultItemAnimator; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import com.ly.supermvp.adapter.NewsListAdapter; import com.ly.supermvp.view.LoadingView; /** * <Pre> * 新闻页面视图代理 * </Pre> * * @author 刘阳 * @version 1.0 * <p/> * Create by 2016/1/27 14:34 * @see https://github.com/liuyanggithub/SuperMvp */ public class NewsFragmentDelegate extends BaseRecyclerViewDelegate implements LoadingView{ /** * 用于加载更多的列表布局管理器 */ private LinearLayoutManager mRecycleViewLayoutManager; @Override void initRecyclerView() { //设置分割线 // recyclerview.addItemDecoration(new ListItemDecoration(getActivity(), LinearLayoutManager.VERTICAL)); recyclerview.setItemAnimator(new DefaultItemAnimator()); recyclerview.setHasFixedSize(true); mRecycleViewLayoutManager = new LinearLayoutManager(getActivity()); recyclerview.setLayoutManager(mRecycleViewLayoutManager); } @Override boolean setFloatingActionMenuVisible() { return false; } /** * 设置加载更多接口 * * @param callBack 加载更多的回调 */ public void registerLoadMoreCallBack(final SwipeRefreshAndLoadMoreCallBack callBack, final NewsListAdapter adapter) { recyclerview.addOnScrollListener(new RecyclerView.OnScrollListener() { private int lastVisibleItem; @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); lastVisibleItem = mRecycleViewLayoutManager.findLastVisibleItemPosition(); } @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); if (newState == RecyclerView.SCROLL_STATE_IDLE && lastVisibleItem + 1 == adapter.getItemCount() && adapter.isShowFooter()) { //加载更多 callBack.loadMore(); } } }); } }