在这里插入图片描述
frgment里面的 关键代码
@Override
protected void initView() {
//数据初始化
List<BlessingBean> list = new ArrayList();
for (int i = 0; i < 30; i++) {
BlessingBean blessingBean = new BlessingBean();
if (i == 0 || i == 5) {
blessingBean.setItemTitle("标题" + i);
blessingBean.setTitle(false);
blessingBean.setIv("");
} else {
blessingBean.setItemTitle("item" + i);
blessingBean.setTitle(true);
blessingBean.setIv("");
}
list.add(blessingBean);
}
relativeLayout_tree = getView().findViewById(R.id.relativeLayout_tree);
relativeLayout_tree.setOnClickListener(this);
RecyclerView recyclerView = getView().findViewById(R.id.recyclerView);
blessingAdaper = new BlessingAdaper(list);
//这里是关键代码 如果你的布局是一个LayoutManager 布局这块就可以不用添加,如果布局是表格布局就做判断标题就得跨行,设置显示几个跨行就几个...
GridLayoutManager gridLayoutManager = new GridLayoutManager(BaseApplication.instance, 3);
gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
if (blessingAdaper.getItemViewType(position) == 0) {
//标题跨4行
return 3;
}
return 1;
}
});
recyclerView.setLayoutManager(gridLayoutManager);
recyclerView.setAdapter(blessingAdaper);
}
Adaper 里面的关键代码
package com.degress.vein.pray.blessing;
import android.support.annotation.NonNull;
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.TextView;
import com.degress.core.base.BaseApplication;
import com.degress.vein.R;
import com.degress.vein.global.bean.BlessingBean;
import java.util.List;
public class BlessingAdaper extends RecyclerView.Adapter<BlessingAdaper.BaseHolder> {
private List<BlessingBean> list;
private static final int VIEW_TYPE_TITLE = 0;
private static final int VIEW_TYPE_ITEM = 1;
BlessingAdaper(List<BlessingBean> list) {
this.list = list;
}
@NonNull
@Override
public BaseHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
BaseHolder view = null;
LayoutInflater layoutInflater = LayoutInflater.from(BaseApplication.instance);
switch (i){
case VIEW_TYPE_TITLE:
view = new HodlerTiele(layoutInflater.inflate(R.layout.item_blessing_title, viewGroup, false));
break;
case VIEW_TYPE_ITEM:
view = new HodlerItem(layoutInflater.inflate(R.layout.item_blessing_item, viewGroup, false));
break;
}
return view;
}
@Override
public void onBindViewHolder(@NonNull BaseHolder baseHodler, int i) {
if (getItemViewType(i) == VIEW_TYPE_TITLE) {
HodlerTiele hodlerTiele = (HodlerTiele) baseHodler;
hodlerTiele.tv_title.setText(list.get(i).getItemTitle());
} else {
HodlerItem hodlerItem = (HodlerItem) baseHodler;
hodlerItem.tv_title_item.setText(list.get(i).getItemTitle());
hodlerItem.imageView.setImageResource(R.mipmap.icon);
}
}
@Override
public int getItemViewType(int position) {
if (!list.get(position).isTitle()) {
return VIEW_TYPE_TITLE;
}
return VIEW_TYPE_ITEM;
}
@Override
public int getItemCount() {
return list.size();
}
public class BaseHolder extends RecyclerView.ViewHolder {
public BaseHolder(@NonNull View itemView) {
super(itemView);
}
}
public class HodlerTiele extends BaseHolder{
TextView tv_title;
public HodlerTiele(@NonNull View itemView) {
super(itemView);
tv_title = itemView.findViewById(R.id.tv_title_bless);
}
}
public class HodlerItem extends BaseHolder{
TextView tv_title_item;
ImageView imageView;
public HodlerItem(@NonNull View itemView) {
super(itemView);
tv_title_item = itemView.findViewById(R.id.tv_item_bless);
imageView = itemView.findViewById(R.id.iv_icon);
}
}
}
是不是超级简单