RecyclerView新增頭和尾

2021-09-27 07:24:43 字數 2608 閱讀 7752

第一步實現繼承recyclerview.viewholder 的子類commonviewholder

public class commonviewholder extends recyclerview.viewholder 

}

第二步封裝介面卡baseadapter

public abstract class baseadapterextends recyclerview.adapter

this.context = context;

}/**

* 新增頭部的view

** @param view

*/public baseadapter addheadview(view view)

/*** 新增底部view

** @param view

*/public baseadapter addfooterview(view view)

/*** @param position

* @return

*/@override

public int getitemviewtype(int position)

/*** 判斷是 head

* @param position

* @return

*/public boolean isheadview(int position )

return false ;

}/**

** @param position

* @return

*/public boolean isfooterview(int position)

}return false ;

}@override

public commonviewholder oncreateviewholder(@nonnull viewgroup viewgroup, int i)

return holder ;

}@override

public void onbindviewholder(@nonnull commonviewholder viewholder, int position) else if (isfooterview(position))else

}@override

public int getitemcount()

if (footerview != null)

return list == null ? count : list.size()+count;

}/**

* 列表 item

* @return

*/public abstract int getlayoutid();

/*** @param viewholder

* @param position

* @param t

*/public abstract void itemview(commonviewholder viewholder,t t ,int position);

/*** @param viewholder

*/public void headview(commonviewholder viewholder)

/*** @param viewholder

*/public void footerview( commonviewholder viewholder)

@override

public void onviewattachedtowindow(@nonnull commonviewholder holder)

}

如何使用

baseadapteradapter;

public void init()

@override

public void itemview(commonviewholder viewholder, string s,int position)

} ;mrecyclerview.setadapter(adapter);

adapter.addheadview(layoutinflater.from(this).inflate(r.layout.head_layout,mrecyclerview,false));

adapter.addfooterview(layoutinflater.from(this).inflate(r.layout.footer_layout,mrecyclerview,false));

}

三種列表型別的實現

public void list1(view view)

public void list2(view view)

});}

public void list3(view view)

給RecyclerView新增頭部

最近開發的時候遇到乙個問題,就是scrollview巢狀recyclerview的時候,在高版本的的手機上執行的時候整個頁面是可以正常滾動的,但是在低版本手機上執行的時候recyclerview以上的內容就不會顯示出來了,整個頁面只有recyclerview,並且充滿了整個螢幕,recyclervi...

recyclerview新增item間距

import android.graphics.rect import android.support.v7.widget.recyclerview import android.view.view public class spaceitemdecoration extends recyclerv...

為recyclerview新增懸浮view

recyclerview中列表一般使用linearlayoutmanage,其中linearlayoutmanage有方法findviewbyposition position 和findfirstvisibleitemposition,他可以分別用來獲取你指定position的view和第乙個顯示...