package com.team.zhuoke.view.video.fragment; import android.os.Bundle; import android.os.Handler; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.bigkoo.svprogresshud.SVProgressHUD; import com.team.zhuoke.R; import com.team.zhuoke.base.BaseFragment; import com.team.zhuoke.base.BaseView; import com.team.zhuoke.model.logic.video.bean.VideoHotAuthorColumn; import com.team.zhuoke.model.logic.video.bean.VideoHotColumn; import com.team.zhuoke.model.logic.video.bean.VideoRecommendHotCate; import com.team.zhuoke.model.logic.video.VideoRecommendModelLogic; import com.team.zhuoke.presenter.video.impl.VideoRecommendPresenterImp; import com.team.zhuoke.presenter.video.interfaces.VideoRerecommendContract; import com.team.zhuoke.ui.refreshview.XRefreshView; import com.team.zhuoke.view.home.adapter.HomeCarouselAdapter; import com.team.zhuoke.view.video.adapter.VideoRecommendAdapter; import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; /** * Created by Administrator on 2017/2/7 0007. */ public class RecommendVideoFragment extends BaseFragment<VideoRecommendModelLogic, VideoRecommendPresenterImp> implements VideoRerecommendContract.View { @BindView(R.id.recommend_content_recyclerview) RecyclerView recommendContentRecyclerview; @BindView(R.id.rtefresh_content) XRefreshView rtefreshContent; private SVProgressHUD svProgressHUD; private HomeCarouselAdapter mRecommedBannerAdapter; private VideoRecommendAdapter adapter; public static RecommendVideoFragment getInstance() { RecommendVideoFragment rf = new RecommendVideoFragment(); return rf; } @Override protected int getLayoutId() { return R.layout.fragment_video_recommend; } @Override protected void onInitView(Bundle bundle) { svProgressHUD = new SVProgressHUD(getActivity()); recommendContentRecyclerview.setLayoutManager(new LinearLayoutManager(getContext())); final RecyclerView.RecycledViewPool pool = new RecyclerView.RecycledViewPool() { @Override public void putRecycledView(RecyclerView.ViewHolder scrap) { super.putRecycledView(scrap); } @Override public RecyclerView.ViewHolder getRecycledView(int viewType) { final RecyclerView.ViewHolder recycledView = super.getRecycledView(viewType); return recycledView; } }; refresh(); // mRecommedBannerAdapter = new HomeCarouselAdapter(); adapter = new VideoRecommendAdapter(getContext()); pool.setMaxRecycledViews(adapter.getItemViewType(0), 500); recommendContentRecyclerview.setRecycledViewPool(pool); recommendContentRecyclerview.setAdapter(adapter); setXrefeshViewConfig(); } /** * 配置XRefreshView */ protected void setXrefeshViewConfig(){ rtefreshContent.setPinnedTime(2000); rtefreshContent.setPullLoadEnable(false); rtefreshContent.setPullRefreshEnable(true); rtefreshContent.setMoveForHorizontal(true); rtefreshContent.setPinnedContent(true); } @Override protected void onEvent() { rtefreshContent.setXRefreshViewListener(new XRefreshView.SimpleXRefreshListener() { @Override public void onRefresh() { // 延迟500毫秒, 原因 用户体验好 !!! new Handler().postDelayed(new Runnable() { @Override public void run() { refresh(); } }, 500); } }); } @Override protected BaseView getViewImp() { return this; } @Override protected void lazyFetchData() { } @Override public void getViewHotColumn(List<VideoHotColumn> mVideoHotColumn) { if(rtefreshContent!=null) { rtefreshContent.stopRefresh(); } adapter.getVideoHotColumn(mVideoHotColumn); } @Override public void getViewHotAutherColumn(List<VideoHotAuthorColumn> videoHotAuthorColumns) { adapter.getFaceScoreColmun(videoHotAuthorColumns); } @Override public void getViewHotCate(List<VideoRecommendHotCate> videoRecommendHotCates) { videoRecommendHotCates.remove(1); adapter.getAllColumn(videoRecommendHotCates); } @Override public void showErrorWithStatus(String msg) { svProgressHUD.showErrorWithStatus(msg); rtefreshContent.stopRefresh(false); } /** * 刷新网络数据 */ private void refresh() { mPresenter.getPresenterVideoHotColumn(); mPresenter.getPresenterVideoHotCate(); mPresenter.getPresenterVideoHotAutherColumn(0,4); } }