需要导入design包
创建适配器
/**
* 主界面的 适配器
*/
class MyHomeRecyclerviewAdapter extends RecyclerView.Adapter {
private LayoutInflater inflater;
public MyHomeRecyclerviewAdapter(LayoutInflater inflater) {
this.inflater = inflater;
}
/**
* 创建viewholder 初始化布局控件
*
* @param parent
* @param viewType
* @return
*/
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = null;
RecyclerView.ViewHolder viewHolder = null;
switch (viewType) {
case TYPE_VIEWPAGER:
view = inflater.inflate(R.layout.item_hometab_viewpager, parent, false);
viewHolder = new MyViewpagerHolder(view);
break;
}
return viewHolder;
}
/**
* 处理各个 布局内容的操作
* 根据位置获取到的view 类型来处理数据
*/
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
switch (getItemViewType(position)) {
case TYPE_THREE:
MyThreeHolder myThreeHolder = (MyThreeHolder) holder;
break;
}
}
@Override
public int getItemCount() {
return ConstantsNum.HOME_TAB_RECYCLER_VIEW_ITEM_COUNT;
}
/**
* 获取 recyclerview 模块的类型
* 根据位置返回具体的类型,用于创建holder
*/
@Override
public int getItemViewType(int position) {
switch (position) {
case TYPE_VIEWPAGER:
return TYPE_VIEWPAGER;
case TYPE_PROJECT:
return TYPE_PROJECT;
default:
return super.getItemViewType(position);
}
}
}
创建ViewHolder
/**
* holder 用户初始化控件
*/
class MyProjectHolder extends RecyclerView.ViewHolder {
TabLayout mHometabTabProject;
public MyProjectHolder(View itemView) {
super(itemView);
mHometabTabProject = (TabLayout) itemView.findViewById(R.id.hometab_tab_project);
}
}
设置LayoutManager和适配器
mHomeRecyclerview.setLayoutManager(new LinearLayoutManager(getContext()));
mHomeRecyclerview.setAdapter(new MyHomeRecyclerviewAdapter(LayoutInflater.from(getContext())));