package com.shizhefei.test.controllers.mvchelpers.cool; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import com.shizhefei.fragment.LazyFragment; import com.shizhefei.mvc.IDataAdapter; import com.shizhefei.mvc.MVCCoolHelper; import com.shizhefei.test.models.datasource.okhttp.BooksOkHttp_AsyncDataSource; import com.shizhefei.test.models.enties.Book; import com.shizhefei.test.view.adapters.ReBooksAdapter; import com.shizhefei.view.coolrefreshview.CoolRefreshView; import com.shizhefei.view.coolrefreshview.header.DefaultHeader; import com.shizhefei.view.mvc.demo.R; import java.util.List; /** * Created by LuckyJayce on 2016/11/29. */ public class StateHeaderFragment extends LazyFragment implements RefreshEvent { private CoolRefreshView coolRefreshView; private RecyclerView recyclerView; private MVCCoolHelper<List<Book>> mvcHelper; private ReBooksAdapter adapter; @Override protected void onCreateViewLazy(Bundle savedInstanceState) { super.onCreateViewLazy(savedInstanceState); setContentView(R.layout.fragment_recyclerview); coolRefreshView = (CoolRefreshView) findViewById(R.id.recyclerview_funnyRefreshView); recyclerView = (RecyclerView) findViewById(R.id.recyclerview_recyclerView); coolRefreshView.setPullHeader(new DefaultHeader()); recyclerView.setLayoutManager(new LinearLayoutManager(getContext())); mvcHelper = new MVCCoolHelper<>(coolRefreshView); mvcHelper.setDataSource(new BooksOkHttp_AsyncDataSource()); // mvcHelper.setAdapter(adapter = new ReBooksAdapter(getContext())); //这里模拟viewAdapter 和 dataAdapter不是同一个的情况 mvcHelper.setAdapter2(adapter = new ReBooksAdapter(getContext()), new IDataAdapter<List<Book>>() { @Override public void notifyDataChanged(List<Book> books, boolean isRefresh) { if (books.size() > 5) { adapter.notifyDataChanged(books.subList(0, 5), isRefresh); } else { adapter.notifyDataChanged(books, isRefresh); } } @Override public List<Book> getData() { return adapter.getData(); } @Override public boolean isEmpty() { return adapter.isEmpty(); } }); mvcHelper.refresh(); } @Override public void onDestroyViewLazy() { super.onDestroyViewLazy(); mvcHelper.destory(); } @Override public void setRefreshing(boolean refreshing) { coolRefreshView.setRefreshing(refreshing); } }