public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder>{
private Context context;
private List<MyBean.DataBean> list;
private View VIEW_HEADER;
private int TYPE_HEADER=1001;
public MyAdapter(Context context, List<MyBean.DataBean> list) {
this.context = context;
this.list = list;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if(viewType==TYPE_HEADER){
return new MyViewHolder(VIEW_HEADER);
}
else{
View view= LayoutInflater.from(context).inflate(R.layout.item,null);
MyViewHolder viewHolder=new MyViewHolder(view);
return viewHolder;
}
}
@Override
public void onBindViewHolder(MyViewHolder holder, final int position) {
}
}
@Override
public int getItemCount() {
int count=(list==null? 0:list.size());
if(VIEW_HEADER!=null){
count++;
}
return count;
}
@Override
public int getItemViewType(int position) {
if(isHeaderView(position)){
return TYPE_HEADER;
}else{
return super.getItemViewType(position);
}
}
public void addHeaderView(View headerView){
if(haveHeaderView()){
throw new IllegalStateException("hearview has already exists!");
}else {
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
headerView.setLayoutParams(params);
VIEW_HEADER = headerView;
notifyItemInserted(0);
}
}
private boolean haveHeaderView(){
return VIEW_HEADER!=null;
}
private boolean isHeaderView(int position){
return haveHeaderView()&&position==0;
}
class MyViewHolder extends RecyclerView.ViewHolder{
private TextView name;
public MyViewHolder(View itemView) {
super(itemView);
name = itemView.findViewById(R.id.tv_name);
}
}
private Context context;
private List<MyBean.DataBean> list;
private View VIEW_HEADER;
private int TYPE_HEADER=1001;
public MyAdapter(Context context, List<MyBean.DataBean> list) {
this.context = context;
this.list = list;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if(viewType==TYPE_HEADER){
return new MyViewHolder(VIEW_HEADER);
}
else{
View view= LayoutInflater.from(context).inflate(R.layout.item,null);
MyViewHolder viewHolder=new MyViewHolder(view);
return viewHolder;
}
}
@Override
public void onBindViewHolder(MyViewHolder holder, final int position) {
if(!isHeaderView((position))) {
if(haveHeaderView()) position--;
holder.name.setText(list.get(position).getUserName());}
}
@Override
public int getItemCount() {
int count=(list==null? 0:list.size());
if(VIEW_HEADER!=null){
count++;
}
return count;
}
@Override
public int getItemViewType(int position) {
if(isHeaderView(position)){
return TYPE_HEADER;
}else{
return super.getItemViewType(position);
}
}
public void addHeaderView(View headerView){
if(haveHeaderView()){
throw new IllegalStateException("hearview has already exists!");
}else {
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
headerView.setLayoutParams(params);
VIEW_HEADER = headerView;
notifyItemInserted(0);
}
}
private boolean haveHeaderView(){
return VIEW_HEADER!=null;
}
private boolean isHeaderView(int position){
return haveHeaderView()&&position==0;
}
class MyViewHolder extends RecyclerView.ViewHolder{
private TextView name;
public MyViewHolder(View itemView) {
super(itemView);
name = itemView.findViewById(R.id.tv_name);
}
}
}
详细了解github