package com.team.zhuoke.view.home.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.home.bean.HomeFaceScoreColumn;
import com.team.zhuoke.model.logic.home.bean.HomeHotColumn;
import com.team.zhuoke.model.logic.home.bean.HomeRecommendHotCate;
import com.team.zhuoke.ui.refreshview.recyclerview.BaseRecyclerAdapter;
import com.team.zhuoke.view.home.activity.HomeColumnMoreListActivity;
import com.team.zhuoke.view.home.activity.HomeRecommendFaceScoreActivity;
import java.util.ArrayList;
import java.util.List;
/**
* 作者:gaoyin
* 电话:18810474975
* 邮箱:18810474975@163.com
* 版本号:1.0
* 类描述:
* 备注消息:
* 修改时间:2017/1/12 下午3:33
**/
public class HomeRecommendAdapter extends BaseRecyclerAdapter<RecyclerView.ViewHolder> {
// 最热栏目
private List<HomeHotColumn> mHomeHotColumn;
// 颜值栏目
private List<HomeFaceScoreColumn> mHomeFaceScoreColumn;
private Context context;
// 最热adapter
private HomeRecommendHotColumnAdapter mHotColumnAdapter;
// 颜值
private HomeRecommendFaceScoreColumnAdapter mFaceScoreColumnAdapter;
// 全部栏目
private List<HomeRecommendHotCate> mHomeRecommendHotCate;
private HomeRecommendAllColumnAdapter mAllColumnAdapter;
/**
* 指定 type类型
*/
// 最热栏目
public static final int TYPE_1 = 0xff01;
public static final int TYPE_2 = 0xff02;
public static final int TYPE_3 = 0xff03;
public HomeRecommendAdapter(Context context) {
this.context = context;
mHomeHotColumn = new ArrayList<HomeHotColumn>();
mHomeFaceScoreColumn = new ArrayList<HomeFaceScoreColumn>();
mHomeRecommendHotCate = new ArrayList<HomeRecommendHotCate>();
mFaceScoreColumnAdapter = new HomeRecommendFaceScoreColumnAdapter(context);
}
/**
* 最热栏目
*
* @param mHomeHotColumn
*/
public void getHomeHotColumn(List<HomeHotColumn> mHomeHotColumn) {
this.mHomeHotColumn.clear();
this.mHomeHotColumn.addAll(mHomeHotColumn);
notifyDataSetChanged();
}
/**
* 颜值栏目
*
* @param mHomeFaceScoreColumn
*/
public void getFaceScoreColmun(List<HomeFaceScoreColumn> mHomeFaceScoreColumn) {
this.mHomeFaceScoreColumn.clear();
this.mHomeFaceScoreColumn.addAll(mHomeFaceScoreColumn);
mFaceScoreColumnAdapter.getFaceScoreColumn(mHomeFaceScoreColumn);
notifyDataSetChanged();
}
/**
* 全部栏目
*
* @param mHomeRecommendHotCate
*/
public void getAllColumn(List<HomeRecommendHotCate> mHomeRecommendHotCate) {
this.mHomeRecommendHotCate.clear();
this.mHomeRecommendHotCate.addAll(mHomeRecommendHotCate);
notifyDataSetChanged();
}
@Override
public RecyclerView.ViewHolder getViewHolder(View view) {
return new ColumnViewHolder(view);
}
@Override
public HomeRecommendAdapter.ColumnViewHolder onCreateViewHolder(ViewGroup parent, int viewType, boolean isItem) {
switch (viewType) {
case TYPE_1:
return new ColumnViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_home_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 == 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(mHomeRecommendHotCate.get(position - 2).getTag_name());
holder.rv_column_list.setLayoutManager(new FullyGridLayoutManager(holder.rv_column_list.getContext(), 2, GridLayoutManager.VERTICAL, false));
mAllColumnAdapter = new HomeRecommendAllColumnAdapter(holder.rv_column_list.getContext(), mHomeRecommendHotCate.get(position - 2).getRoom_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, HomeColumnMoreListActivity.class);
Bundle bundle = new Bundle();
bundle.putString("title", holder.tv_column_name.getText().toString());
bundle.putString("cate_id", mHomeRecommendHotCate.get(position - 2).getTag_id());
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(), 2, GridLayoutManager.VERTICAL, false));
holder.rv_column_list.setAdapter(mFaceScoreColumnAdapter);
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 == 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 HomeRecommendHotColumnAdapter(holder.rv_column_list.getContext(), mHomeHotColumn);
holder.rv_column_list.setAdapter(mHotColumnAdapter);
}
@Override
public int getAdapterItemCount() {
return mHomeRecommendHotCate.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);
}
}
}