package com.team.zhuoke.view.video.adapter; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; import com.team.zhuoke.R; 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.ui.refreshview.recyclerview.BaseRecyclerAdapter; import com.team.zhuoke.view.home.activity.HomeRecommendFaceScoreActivity; import com.team.zhuoke.view.home.adapter.FullyGridLayoutManager; import java.util.ArrayList; import java.util.List; /** * 作者:gaoyin * 电话:18810474975 * 邮箱:18810474975@163.com * 版本号:1.0 * 类描述: * 备注消息: * 修改时间:2017/1/12 下午3:33 **/ public class VideoRecommendAdapter extends BaseRecyclerAdapter<RecyclerView.ViewHolder> { // 最热栏目 private List<VideoHotColumn> mVideoHotColumn; // 作者栏目 private List<VideoHotAuthorColumn> mVideoHotAuthorColumn; private Context context; // 最热adapter private VideoRecommendHotColumnAdapter mHotColumnAdapter; // 作者 private VideoHotAuthorColumnAdapter mVideoHotAuthorColumnAdapter; // 全部栏目 private List<VideoRecommendHotCate> mVideoRecommendHotCate; private VideoRecommendAllColumnAdapter mAllColumnAdapter; /** * 指定 type类型 */ // 最热栏目 public static final int TYPE_1 = 0xff01; public static final int TYPE_2 = 0xff02; public static final int TYPE_3 = 0xff03; public VideoRecommendAdapter(Context context) { this.context = context; mVideoHotColumn = new ArrayList<VideoHotColumn>(); mVideoHotAuthorColumn = new ArrayList<VideoHotAuthorColumn>(); mVideoRecommendHotCate = new ArrayList<VideoRecommendHotCate>(); mVideoHotAuthorColumnAdapter = new VideoHotAuthorColumnAdapter(context); } /** * 最热栏目 * * @param mVideoHotColumn */ public void getVideoHotColumn(List<VideoHotColumn> mVideoHotColumn) { this.mVideoHotColumn.clear(); this.mVideoHotColumn.addAll(mVideoHotColumn); notifyDataSetChanged(); } /** * 作者栏目 * * @param */ public void getFaceScoreColmun(List<VideoHotAuthorColumn> mVideoHotAuthorColumn) { this.mVideoHotAuthorColumn.clear(); this.mVideoHotAuthorColumn.addAll(mVideoHotAuthorColumn); mVideoHotAuthorColumnAdapter.getFaceScoreColumn(mVideoHotAuthorColumn); notifyDataSetChanged(); } /** * 全部栏目 * * @param mVideoRecommendHotCate */ public void getAllColumn(List<VideoRecommendHotCate> mVideoRecommendHotCate) { this.mVideoRecommendHotCate.clear(); this.mVideoRecommendHotCate.addAll(mVideoRecommendHotCate); notifyDataSetChanged(); } @Override public RecyclerView.ViewHolder getViewHolder(View view) { return new ColumnViewHolder(view); } @Override public VideoRecommendAdapter.ColumnViewHolder onCreateViewHolder(ViewGroup parent, int viewType, boolean isItem) { switch (viewType) { case TYPE_1: return new ColumnViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_video_recommend, parent, false)); case TYPE_2: return new ColumnViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_home_recommend, parent, false)); case TYPE_3: return new ColumnViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_home_recommend, parent, false)); default: return null; } } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position, boolean isItem) { if (holder instanceof ColumnViewHolder && position == 0) { bindColumnHolder((ColumnViewHolder) holder, position); } else if (holder instanceof ColumnViewHolder && position == mVideoRecommendHotCate.size()+1) { bindFaceScoreColumnHolder((ColumnViewHolder) holder, position, isItem); } else { bindAllColumnHolder((ColumnViewHolder) holder, position); } } /** * 全部栏目 * * @param holder * @param position */ private void bindAllColumnHolder(ColumnViewHolder holder, int position) { holder.img_column_icon.setImageResource(R.mipmap.icon_column); holder.tv_column_name.setText(mVideoRecommendHotCate.get(position - 1).getCate_name()); holder.rv_column_list.setLayoutManager(new FullyGridLayoutManager(holder.rv_column_list.getContext(), 2, GridLayoutManager.VERTICAL, false)); mAllColumnAdapter = new VideoRecommendAllColumnAdapter(holder.rv_column_list.getContext(), mVideoRecommendHotCate.get(position - 1).getVideo_list()); holder.rv_column_list.setAdapter(mAllColumnAdapter); holder.rl_column_more.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(context, HomeRecommendFaceScoreActivity.class); Bundle bundle = new Bundle(); bundle.putString("title", holder.tv_column_name.getText().toString()); intent.putExtras(bundle); context.startActivity(intent); } }); } /** * 热门作者 * @param holder * @param position * @param isItem */ private void bindFaceScoreColumnHolder(ColumnViewHolder holder, int position, boolean isItem) { holder.img_column_icon.setImageResource(R.mipmap.icon_reco_mobile); holder.tv_column_name.setText("热门作者"); holder.rv_column_list.setLayoutManager(new FullyGridLayoutManager(holder.rv_column_list.getContext(), 1, GridLayoutManager.VERTICAL, false)); holder.rv_column_list.setAdapter(mVideoHotAuthorColumnAdapter); holder.rl_column_more.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(context, HomeRecommendFaceScoreActivity.class); Bundle bundle = new Bundle(); bundle.putString("title", holder.tv_column_name.getText().toString()); intent.putExtras(bundle); context.startActivity(intent); } }); } @Override public int getAdapterItemViewType(int position) { if (position == 0) { return TYPE_1; } else if (position == mVideoRecommendHotCate.size()+1) { return TYPE_2; } return TYPE_3; } @Override public void onAttachedToRecyclerView(RecyclerView recyclerView) { super.onAttachedToRecyclerView(recyclerView); RecyclerView.LayoutManager manager = recyclerView.getLayoutManager(); if (manager instanceof GridLayoutManager) { final GridLayoutManager gridManager = ((GridLayoutManager) manager); gridManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @Override public int getSpanSize(int position) { int type = getItemViewType(position); switch (type) { case TYPE_1: case TYPE_2: case TYPE_3: return gridManager.getSpanCount(); default: return 1; } } }); } } /** * 最热栏目 * * @param holder * @param position */ private void bindColumnHolder(ColumnViewHolder holder, int position) { holder.img_column_icon.setImageResource(R.mipmap.reco_game_txt_icon); holder.tv_column_name.setText("热门视频"); holder.rv_column_list.setLayoutManager(new FullyGridLayoutManager(holder.rv_column_list.getContext(), 2, GridLayoutManager.VERTICAL, false)); mHotColumnAdapter = new VideoRecommendHotColumnAdapter(holder.rv_column_list.getContext(), mVideoHotColumn); holder.rv_column_list.setAdapter(mHotColumnAdapter); } @Override public int getAdapterItemCount() { return mVideoRecommendHotCate.size() + 2; } public class ColumnViewHolder extends RecyclerView.ViewHolder { // 栏目 Icon public ImageView img_column_icon; // 栏目 名称 public TextView tv_column_name; // 加载更多 public RelativeLayout rl_column_more; // 栏目列表 public RecyclerView rv_column_list; public LinearLayout item_home_recommed_girdview; public ColumnViewHolder(View itemView) { super(itemView); img_column_icon = (ImageView) itemView.findViewById(R.id.img_column_icon); tv_column_name = (TextView) itemView.findViewById(R.id.tv_column_name); rl_column_more = (RelativeLayout) itemView.findViewById(R.id.rl_column_more); rv_column_list = (RecyclerView) itemView.findViewById(R.id.rv_column_list); item_home_recommed_girdview = (LinearLayout) itemView.findViewById(R.id.item_home_recommed_girdview); } } }