左右上下滑动列表,如何实现加载更多?
我现在配合BRVAH使用,但是加载更多就报空指针了 类一: public class OneViewHolder extends BaseViewHolder implements View.OnLongClickListener, View.OnClickListener {
private SparseArray<View> viewSparseArray;
private CommonViewHolder.onItemCommonClickListener commonClickListener;
public OneViewHolder(@NotNull View view) {
super(view);
itemView.setOnClickListener(this);
itemView.setOnLongClickListener(this);
viewSparseArray = new SparseArray<>();
}
/**
* 根据 ID 来获取 View
*
* @param viewId viewID
* @param <T> 泛型
* @return 将结果强转为 View 或 View 的子类型
*/
public <T extends View> T getView(int viewId) {
// 先从缓存中找,找打的话则直接返回
// 如果找不到则 findViewById ,再把结果存入缓存中
View view = viewSparseArray.get(viewId);
if (view == null) {
view = itemView.findViewById(viewId);
viewSparseArray.put(viewId, view);
}
return (T) view;
}
public OneViewHolder setText(int viewId, CharSequence text) {
TextView tv = getView(viewId);
tv.setText(text);
return this;
}
// public OneViewHolder setViewVisibility(int viewId, int visibility) { // getView(viewId).setVisibility(visibility); // return this; // }
public OneViewHolder setImageResource(int viewId, int resourceId) {
ImageView imageView = getView(viewId);
imageView.setImageResource(resourceId);
return this;
}
public interface onItemCommonClickListener {
void onItemClickListener(int position);
void onItemLongClickListener(int position);
}
public void setCommonClickListener(CommonViewHolder.onItemCommonClickListener commonClickListener) {
this.commonClickListener = commonClickListener;
}
@Override
public void onClick(View v) {
if (commonClickListener != null) {
commonClickListener.onItemClickListener(getAdapterPosition());
}
}
@Override
public boolean onLongClick(View v) {
if (commonClickListener != null) {
commonClickListener.onItemLongClickListener(getAdapterPosition());
}
return false;
}
}
类二: public class MyCoinAdapter extends BaseQuickAdapter<OperatorBean.Lists, OneViewHolder> implements LoadMoreModule {
private LayoutInflater mLayoutInflater;
private int mLayoutId;
private int mFixX;
private ArrayList<View> mMoveViewList = new ArrayList<>();
public MyCoinAdapter(int layoutResId) {
super(layoutResId);
mLayoutInflater = LayoutInflater.from(UIUtils.getContext());
mLayoutId = layoutResId;
}
@Override
protected void convert(@NotNull OneViewHolder baseViewHolder, OperatorBean.Lists bean) {
baseViewHolder.setText(R.id.tv_number, String.valueOf(bean.getNumber()))
.setText(R.id.tv_user, bean.getUserName())
.setText(R.id.tv_wallet_address, bean.getAddress())
.setText(R.id.tv_ip_address, bean.getIp());
}
@Override
public OneViewHolder onCreateViewHolder(@NotNull ViewGroup parent, int viewType) {
View itemView = mLayoutInflater.inflate(mLayoutId, parent, false);
OneViewHolder holder = new OneViewHolder(itemView);
//获取可滑动的view布局
LinearLayout moveLayout = holder.getView(R.id.id_move_layout);
moveLayout.scrollTo(mFixX, 0);
mMoveViewList.add(moveLayout);
return holder;
}
public ArrayList<View> getMoveViewList(){
return mMoveViewList;
}
public void setFixX(int fixX){
mFixX=fixX;
}
}
错误信息: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setVisibility(int)' on a null object reference at com.chad.library.adapter.base.loadmore.BaseLoadMoreView.isVisible(BaseLoadMoreView.kt:92) at com.chad.library.adapter.base.loadmore.BaseLoadMoreView.convert(BaseLoadMoreView.kt:71) at com.chad.library.adapter.base.BaseQuickAdapter.onBindViewHolder(BaseQuickAdapter.kt:372) at com.chad.library.adapter.base.BaseQuickAdapter.onBindViewHolder(BaseQuickAdapter.kt:382) at com.chad.library.adapter.base.BaseQuickAdapter.onBindViewHolder(BaseQuickAdapter.kt:75) at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:7337) at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:6194) at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6460) at androidx.recyclerview.widget.GapWorker.prefetchPositionWithDeadline(GapWorker.java:288) at androidx.recyclerview.widget.GapWorker.flushTaskWithDeadline(GapWorker.java:345) at androidx.recyclerview.widget.GapWorker.flushTasksWithDeadline(GapWorker.java:361) at androidx.recyclerview.widget.GapWorker.prefetch(GapWorker.java:368) at androidx.recyclerview.widget.GapWorker.run(GapWorker.java:399) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)