package com.laotan.easyreader.ui.fragment.home.child; import android.animation.Animator; import android.content.Intent; import android.support.v4.app.ActivityOptionsCompat; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import com.chad.library.adapter.base.animation.BaseAnimation; import com.laotan.easyreader.R; import com.laotan.easyreader.adapter.MovieLatestAdapter; import com.laotan.easyreader.bean.douban.HotMovieBean; import com.laotan.easyreader.injector.component.fragment.DaggerDoubanMovieLatestComponent; import com.laotan.easyreader.injector.module.fragment.DoubanMovieLatestModule; import com.laotan.easyreader.injector.module.http.DoubanHttpModule; import com.laotan.easyreader.presenter.DoubanHotMoviePresenter; import com.laotan.easyreader.presenter.impl.DoubanHotMoviePresenterImpl; import com.laotan.easyreader.ui.activity.douban.MovieTopDetailActivity; import com.laotan.easyreader.ui.fragment.BaseFragment; import java.util.List; import butterknife.BindView; /** * Created by quantan.liu on 2017/3/22. */ public class DouBanMovieLatestFragment extends BaseFragment<DoubanHotMoviePresenterImpl> implements DoubanHotMoviePresenter.View { @BindView(R.id.rcv_activity) RecyclerView rcvActivity; private List<HotMovieBean.SubjectsBean> subjectsBeanList; @Override public void refreshView(HotMovieBean data) { subjectsBeanList = data.getSubjects(); mPresenter.checkState(subjectsBeanList); mAdapter.addData(subjectsBeanList); } @Override protected void loadData() { mPresenter.fetchHotMovie(); } @Override protected int getLayoutId() { return R.layout.activity_recyclerview; } @Override protected void initView() { rcvActivity.setLayoutManager(new LinearLayoutManager(getActivity())); rcvActivity.setAdapter(mAdapter); mAdapter.openLoadAnimation(new BaseAnimation() { @Override public Animator[] getAnimators(View view) { return new Animator[]{ }; } }); ((MovieLatestAdapter) mAdapter).setOnItemClickListener(new MovieLatestAdapter.OnItemClickListener() { @Override public void onItemClickListener(HotMovieBean.SubjectsBean positionData, View view) { startZhiHuDetailActivity(positionData, view); } }); } @Override protected void initInject() { DaggerDoubanMovieLatestComponent.builder() .doubanHttpModule(new DoubanHttpModule()) .doubanMovieLatestModule(new DoubanMovieLatestModule()) .build().injectDoubanMovieLatest(this); } private void startZhiHuDetailActivity(HotMovieBean.SubjectsBean positionData, View view) { Intent intent = new Intent(); intent.setClass(getActivity(), MovieTopDetailActivity.class); intent.putExtra("bean", positionData); /** * 用这个ActivityOptionsCompat比用ActivityOptions兼容性更好,前者是V4下的兼容到16后者到21. * ActivityOptionsCompat.makeSceneTransitionAnimation()的第三个参数则是跳转后图片显示的transitionName的值 * <android.support.design.widget.AppBarLayout android:transitionName="zhihu_detail_title" android:fitsSystemWindows="true"> 跳转到目标ImageView不能是addview进来的 */ ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity(), view, getActivity().getResources().getString(R.string.douban_detail_iamge)); getActivity().startActivity(intent, options.toBundle()); } }