GitHub - RecyclerAdapter
RecyclerView Adapter封裝類,
封裝性、支持Header、支持Footer;
注意Header和Footer占據對應position,HeaderPosition = 0,FooterPosition = last;
Maven
1.build.grade
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
2./app/build.grade
dependencies {
implementation 'com.github.RelinRan:RecyclerAdapter:2021.12.26.2'
}
使用
private class ItemAdapter extends RecyclerAdapter<String> {
public ItemAdapter(Context context) {
super(context);
}
@Override
public int getHeaderLayoutResId() {
//TODO:頭部布局
return R.layout.androidx_item_header;
}
@Override
protected void onHeaderBindViewHolder(ViewHolder holder, int position) {
super.onHeaderBindViewHolder(holder, position);
// TODO:頭部布局資料系結
holder.addItemClick(R.id.btn_header);
holder.find(Button.class,R.id.btn_header).setText("Header - "+getItem(position));
}
@Override
public int getFooterLayoutResId() {
//TODO:腳部布局
return R.layout.androidx_item_footer;
}
@Override
protected void onFooterBindViewHolder(ViewHolder holder, int position) {
super.onFooterBindViewHolder(holder, position);
//TODO:腳部布局資料系結
holder.find(Button.class,R.id.btn_footer).setText("Footer - "+getItem(position));
holder.addItemClick(R.id.btn_footer);
}
@Override
protected int getItemSwipeMenuLayoutResId() {
//TODO:側滑Item布局
return R.layout.android_menu;
}
@Override
protected void onSwipeBindViewHolder(ViewHolder holder, int position) {
super.onSwipeBindViewHolder(holder, position);
//TODO:側滑Item布局資料系結
holder.addItemClick(R.id.btn_item_name);
holder.addItemClick(R.id.tv_delete);
holder.addItemClick(R.id.tv_edit);
holder.find(TextView.class, R.id.btn_item_name).setText(getItem(position));
}
@Override
protected int getItemLayoutResId(int viewType) {
//TODO:普通item布局
return R.layout.androidx_items;
}
@Override
protected void onItemBindViewHolder(ViewHolder holder, int position) {
//TODO:普通item布局資料系結
}
}
RecyclerAdapter方法
1.設定資料源
setItems(List<T> data);
2.設定分頁資料
注意:默認開始page=1
setPageItems(int page, List<T> data);
3.添加Items
addItems(List<T> data);
4.添加Item
addItem(T t);
5.通過位置添加item
addItem(int position, T t);
6.首位添加
addFirst(T t);
7.洗掉Item
removeItem(int position);
8.按范圍洗掉Item
removeItems(int positionStart, int itemCount);
9.移動Item
swapItem(int fromPosition, int toPosition);
10.獲取資料
List<T> getItems();
11.獲取Item
T getItem(int position);
12.設定空視圖
setEmptyView(View emptyView);
13.設定Item點擊事件
setOnItemClickListener(OnItemClickListener<T> listener);
14.獲取Item點擊事件
OnItemClickListener<T> getOnItemClickListener();
15.設定焦點改變事件
setOnItemFocusChangeListener(OnItemFocusChangeListener<T> listener);
ViewHolder方法
1.獲取視圖型別
int getViewType();
2.獲取控制元件
View v = viewHolder.find(@IdRes int id);
TextView v = viewHolder.find(TextView.class,R.id.tv_name);
3.添加點擊事件
addItemClick(@IdRes int id);
addItemClick(View v);
4.添加焦點監聽
addItemFocus(@IdRes int id);
addItemFocus(View v);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/393967.html
標籤:其他
上一篇:演算法面試題
