RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler); list = new ArrayList<>(); for (int i = 0; i < 30; i++) { list.add("商品"+i); } recyclerView.setLayoutManager(new GridLayoutManager(this,3)); MyApadater myApadater = new MyApadater(); TextView textView1 = new TextView(this); textView1.setText("我是头布局1"); TextView textView2 = new TextView(this); textView2.setText("我是头布局2"); TextView textView3 = new TextView(this); textView3.setText("我是头布局3"); myApadater.addView(textView1); myApadater.addView(textView2); myApadater.addView(textView3); TextView textView4 = new TextView(this); textView4.setText("我是尾部局"); myApadater.addFootView(textView4); recyclerView.setAdapter(myApadater); } class MyApadater extends RecyclerView.Adapter<RecyclerView.ViewHolder>{ @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { if(viewType == 0){ View view = View.inflate(MainActivity.this, R.layout.head_main, null); MyHeadViewHolder myHeadViewHolder = new MyHeadViewHolder(view); return myHeadViewHolder; }else if(viewType == 1){ View view = View.inflate(MainActivity.this, R.layout.item_main, null); MyViewHolder myViewHolder = new MyViewHolder(view); return myViewHolder; }else { View view = View.inflate(MainActivity.this, R.layout.foot_main, null); MyFootViewHolder myFootViewHolder = new MyFootViewHolder(view); return myFootViewHolder; } } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if(holder instanceof MyHeadViewHolder){ if(( (MyHeadViewHolder)holder).head_layout.getChildCount() == 0){ ( (MyHeadViewHolder)holder).head_layout.addView(headList.get(position)); } }else if(holder instanceof MyViewHolder){ ( (MyViewHolder)holder).tv.setText(list.get(position-headList.size())); }else { if(( (MyFootViewHolder)holder).foot_layout.getChildCount() == 0){ ( (MyFootViewHolder)holder).foot_layout.addView(footList.get(position-headList.size()-list.size())); } } } @Override public int getItemCount() { return list.size()+headList.size()+footList.size(); } @Override public int getItemViewType(int position) { if(position<headList.size()){ return 0; }else if(position<headList.size()+list.size()){ return 1; }else { return 2; } } List<View> headList = new ArrayList<>(); List<View> footList = new ArrayList<>(); public void addView(View view){ if(headList!=null){ headList.add(view); } } public void addFootView(View view){ if(footList!=null){ footList.add(view); } } } class MyViewHolder extends RecyclerView.ViewHolder{ TextView tv; public MyViewHolder(View itemView) { super(itemView); tv = (TextView) itemView.findViewById(R.id.tv); } } class MyHeadViewHolder extends RecyclerView.ViewHolder{ LinearLayout head_layout; public MyHeadViewHolder(View itemView) { super(itemView); head_layout = (LinearLayout) itemView.findViewById(R.id.head_layout); } } class MyFootViewHolder extends RecyclerView.ViewHolder{ LinearLayout foot_layout; public MyFootViewHolder(View itemView) { super(itemView); foot_layout = (LinearLayout) itemView.findViewById(R.id.foot_layout); } }
添加头部脚部RecyclerView
最新推荐文章于 2020-12-27 13:50:02 发布