package org.cuieney.videolife.ui.fragment.essay; import android.os.Build; import android.os.Bundle; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.transition.Fade; import android.transition.Slide; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import org.cuieney.videolife.R; import org.cuieney.videolife.common.base.BaseFragment; import org.cuieney.videolife.common.base.DetailTransition; import org.cuieney.videolife.common.component.EventUtil; import org.cuieney.videolife.common.utils.LogUtil; import org.cuieney.videolife.entity.EssayListBean; import org.cuieney.videolife.entity.MusicListBean; import org.cuieney.videolife.entity.YiRenBean.DataBean; import org.cuieney.videolife.presenter.EssayHomePresenter; import org.cuieney.videolife.presenter.contract.EssayHomeContract; import org.cuieney.videolife.ui.adapter.EssayAdapter; import org.cuieney.videolife.ui.adapter.MusicAdapter; import org.cuieney.videolife.ui.fragment.music.MusicDetailFragment; import org.cuieney.videolife.ui.fragment.video.VideoHomeFragment; import org.cuieney.videolife.ui.widget.EndLessOnScrollListener; import java.util.ArrayList; import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.Unbinder; /** * Created by cuieney on 2017/5/17. */ public class EssayHomeFragment extends BaseFragment<EssayHomePresenter> implements EssayHomeContract.View { @BindView(R.id.recycler) RecyclerView recycler; @BindView(R.id.refresh) SwipeRefreshLayout refresh; private List<DataBean> mEssayList; private int pager = 0; private EssayAdapter adapter; public static EssayHomeFragment newInstance() { Bundle bundle = new Bundle(); EssayHomeFragment essayHomeFragment = new EssayHomeFragment(); essayHomeFragment.setArguments(bundle); return essayHomeFragment; } @Override public void showContent(List<DataBean> dataBeanList) { if (refresh.isRefreshing()) { refresh.setRefreshing(false); pager = 0; adapter.clear(); mEssayList.clear(); adapter.addAll(dataBeanList); recycler.setAdapter(adapter); }else{ adapter.addAll(dataBeanList); int size = dataBeanList.size(); String id = dataBeanList.get(size - 1).getId(); Log.e("oye", "showContent: "+id ); pager = Integer.parseInt(id); } mEssayList.addAll(dataBeanList); } @Override public void error(Throwable throwable) { } @Override protected void initInject() { getFragmentComponent().inject(this); } @Override protected int getLayoutId() { return R.layout.essay_home_fragment; } @Override protected void initEventAndData() { refresh.setProgressViewOffset(false,100,200); refresh.setOnRefreshListener(() -> mPresenter.getEssayData(0)); LinearLayoutManager layout = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false); recycler.setLayoutManager(layout); recycler.addOnScrollListener(new EndLessOnScrollListener(layout,1) { @Override public void onLoadMore() { mPresenter.getEssayData(pager); } }); mEssayList = new ArrayList<>(); adapter = new EssayAdapter(getActivity(),mEssayList); recycler.setAdapter(adapter); adapter.setOnItemClickListener((position, view, vh) -> { startChildFragment(mEssayList.get(position),vh); }); mPresenter.getEssayData(pager); } private void startChildFragment(DataBean dataBean, RecyclerView.ViewHolder vh) { EventUtil.sendEvent(true + ""); EssayHomeDetailFragment fragment = EssayHomeDetailFragment.newInstance(dataBean.getId(),dataBean.getItem_id()); // 这里是使用SharedElement的用例 // LOLLIPOP(5.0)系统的 SharedElement支持有 系统BUG, 这里判断大于 > LOLLIPOP if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) { setExitTransition(new Fade()); fragment.setEnterTransition(new Slide()); fragment.setSharedElementReturnTransition(new DetailTransition()); fragment.setSharedElementEnterTransition(new DetailTransition()); // 25.1.0以下的support包,Material过渡动画只有在进栈时有,返回时没有; // 25.1.0+的support包,SharedElement正常 fragment.transaction() .addSharedElement(((EssayAdapter.EssayHolder) vh).image, getString(R.string.image_transition)) .commit(); } start(fragment); } }