package com.hpw.myapp.ui.tv.fragment; import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.widget.GridLayoutManager; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import com.bumptech.glide.Glide; import com.hpw.mvpframe.base.CoreBaseFragment; import com.hpw.mvpframe.utils.DisplayUtils; import com.hpw.mvpframe.widget.GlideCircleTransform; import com.hpw.mvpframe.widget.recyclerview.BaseQuickAdapter; import com.hpw.mvpframe.widget.recyclerview.BaseViewHolder; import com.hpw.mvpframe.widget.recyclerview.CoreRecyclerView; import com.hpw.myapp.App; import com.hpw.myapp.Constants; import com.hpw.myapp.R; import com.hpw.myapp.ui.tv.activity.TvShowActivity; import com.hpw.myapp.ui.tv.contract.TvContract; import com.hpw.myapp.ui.tv.model.OtherBean; import com.hpw.myapp.ui.tv.model.OtherModel; import com.hpw.myapp.ui.tv.presenter.OtherPresenter; import com.hpw.myapp.widget.GlideTransform; /** * Created by hpw on 16/12/2. */ public class OtherFragment extends CoreBaseFragment<OtherPresenter, OtherModel> implements TvContract.OtherView { CoreRecyclerView coreRecyclerView; public static OtherFragment newInstance(String url) { Bundle args = new Bundle(); args.putString(Constants.ARG_OTHER_LIST_URL, url); OtherFragment fragment = new OtherFragment(); fragment.setArguments(args); return fragment; } @Override public int getLayoutId() { return 0; } @Override public View getLayoutView() { coreRecyclerView = new CoreRecyclerView(mContext).init(new GridLayoutManager(mContext, 2), new BaseQuickAdapter<OtherBean.DataBean, BaseViewHolder>(R.layout.item_tv_other) { @Override protected void convert(BaseViewHolder helper, OtherBean.DataBean item) { //Glide在加载GridView等时,由于ImageView和Bitmap实际大小不符合,第一次时加载可能会变形(我这里出现了放大),必须在加载前再次固定ImageView大小 ViewGroup.LayoutParams lp = helper.getView(R.id.thumnails).getLayoutParams(); lp.width = (App.SCREEN_WIDTH - DisplayUtils.dp2px(mContext, 12)) / 2; lp.height = DisplayUtils.dp2px(mContext, 120); Glide.with(mContext).load(item.getThumb()).crossFade().transform(new GlideTransform(mContext, 5)).into((ImageView) helper.getView(R.id.thumnails)); Glide.with(mContext).load(item.getAvatar()).crossFade().centerCrop().transform(new GlideCircleTransform(mContext)).into((ImageView) helper.getView(R.id.ic_head)); helper.setText(R.id.title, item.getTitle()) .setText(R.id.tv_viewnum, item.getView()) .setText(R.id.nickName, item.getNick()) .setOnClickListener(R.id.ll_click, v -> { Intent starter = new Intent(mActivity, TvShowActivity.class); starter.putExtra("playBean", item); getActivity().startActivity(starter); getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_out); }); } }) .openLoadMore(0, page -> mPresenter.getOtherData(getArguments().getString(Constants.ARG_OTHER_LIST_URL))) .openRefresh(); return coreRecyclerView; } @Override public void initUI(View view, @Nullable Bundle savedInstanceState) { } @Override public void initData() { mPresenter.getOtherData(getArguments().getString(Constants.ARG_OTHER_LIST_URL)); } @Override public void showError(String msg) { } @Override public void showContent(OtherBean info) { coreRecyclerView.getAdapter().addData(info.getData()); } }