package com.laotan.easyreader.ui.fragment.wechat; import android.content.Intent; import android.support.v4.app.ActivityOptionsCompat; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import com.chad.library.adapter.base.BaseQuickAdapter; import com.laotan.easyreader.R; import com.laotan.easyreader.adapter.NBAAdapter; import com.laotan.easyreader.bean.topnews.NBAListBean; import com.laotan.easyreader.injector.component.fragment.DaggerNBAComponent; import com.laotan.easyreader.injector.module.fragment.NBAModule; import com.laotan.easyreader.injector.module.http.TopNewsHttpModule; import com.laotan.easyreader.presenter.NBAPresenter; import com.laotan.easyreader.presenter.impl.NBAPresenterImpl; import com.laotan.easyreader.ui.activity.topnews.NBAActivity; import com.laotan.easyreader.ui.fragment.BaseFragment; import com.laotan.easyreader.view.EasyLoadMoreView; import java.util.List; import butterknife.BindView; /** * Created by quantan.liu on 2017/4/12. */ public class NBAFragment extends BaseFragment<NBAPresenterImpl> implements NBAPresenter.View, SwipeRefreshLayout.OnRefreshListener, BaseQuickAdapter.RequestLoadMoreListener { @BindView(R.id.rv_android) RecyclerView rvAndroid; @BindView(R.id.srl_android) SwipeRefreshLayout srlAndroid; private boolean isRefresh = false; private int index = 0; @Override protected void loadData() { mPresenter.fetchNBAList(index); } @Override protected int getLayoutId() { return R.layout.fragment_android; } @Override protected void initView() { srlAndroid.setColorSchemeColors(getResources().getColor(R.color.colorTheme)); rvAndroid.setLayoutManager(new LinearLayoutManager(getActivity())); rvAndroid.setAdapter(mAdapter); srlAndroid.setOnRefreshListener(this); mAdapter.setLoadMoreView(new EasyLoadMoreView()); mAdapter.setOnLoadMoreListener(this, rvAndroid); ((NBAAdapter)mAdapter).setOnItemClickListener(new NBAAdapter.OnItemClickListener() { @Override public void onItemClickListener(String id, String imgUrl, View view) { startNBADetailActivity(id, imgUrl, view); } }); } private void startNBADetailActivity(String id, String imgUrl, View view) { Intent intent = new Intent(); intent.setClass(getActivity(), NBAActivity.class); intent.putExtra("id", id); intent.putExtra("url", imgUrl); /** * 用这个ActivityOptionsCompat比用ActivityOptions兼容性更好,前者是V4下的兼容到16后者到21. * ActivityOptionsCompat.makeSceneTransitionAnimation()的第三个参数则是跳转后图片显示的transitionName的值 * <android.support.design.widget.AppBarLayout android:transitionName="zhihu_detail_title" android:fitsSystemWindows="true"> */ ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity(), view, getActivity().getResources().getString(R.string.zhihu_detail_title)); getActivity().startActivity(intent, options.toBundle()); } @Override protected void initInject() { DaggerNBAComponent.builder() .topNewsHttpModule(new TopNewsHttpModule()) .nBAModule(new NBAModule()) .build().injectNBA(this); } @Override public void onRefresh() { index = 0; isRefresh = true; mAdapter.setEnableLoadMore(false); mPresenter.fetchNBAList(index); } @Override public void onLoadMoreRequested() { if (index >= 60) { mAdapter.loadMoreEnd(); srlAndroid.setEnabled(true); } else { loadData(); srlAndroid.setEnabled(false); } } @Override public void refreshView(NBAListBean mData) { List<NBAListBean.NBABean> nbaBeenList = mData.getT1348649145984(); if (isRefresh) { srlAndroid.setRefreshing(false); mAdapter.setEnableLoadMore(true); isRefresh = false; mAdapter.setNewData(nbaBeenList); } else { srlAndroid.setEnabled(true); index += 20; mAdapter.addData(nbaBeenList); mAdapter.loadMoreComplete(); } } }