BaseRecyclerViewAdapterHelper的问题


/** * Name:普通卡密 * Time:2022-11-06 */public class AppNormalKmFragment extends BaseFragment {    private View view;    @Nullable    @Override    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        view=inflater.inflate(R.layout.fragment_app_normal_km, container, false);        initView();        return view;    }    private LinearLayout mLoadingStatus;    private SmartRefreshLayout mSmart;    private void initView() {        mLoadingStatus = view.findViewById(R.id.loading_status);        mSmart = view.findViewById(R.id.smart);        mSmart.setRefreshHeader(new ClassicsHeader(requireActivity()));        RecyclerView mList = view.findViewById(R.id.list);        mList.setLayoutManager(new LinearLayoutManager(requireActivity(),LinearLayoutManager.VERTICAL,false));        mLoadingStatus.setVisibility(View.VISIBLE);        adapter = new AppKmAdapter(getActivity(),null);        adapter.getLoadMoreModule().setOnLoadMoreListener(() -> ListKmMethod(true));        mList.setAdapter(adapter);        adapter.setEmptyView(R.layout.view_empty_km); // 没有内容则显示        adapter.setDiffCallback(new DiffUtil.ItemCallback() {            @Override            public boolean areItemsTheSame(@NonNull AppKmData oldItem, @NonNull AppKmData newItem) {                return true;            }            @Override            public boolean areContentsTheSame(@NonNull AppKmData oldItem, @NonNull AppKmData newItem) {                if(!Objects.equals(oldItem.getAppKmValue(), newItem.getAppKmValue())){                    return false;                } else if (!Objects.equals(oldItem.getPrize(), newItem.getPrize())) {                    return false;                } else return oldItem.isUsed() == newItem.isUsed();            }        });        // 点击普通卡密列表        adapter.setOnItemClickListener((adapter, view, position) -> {            AppKmData appKmData = (AppKmData) adapter.getItem(position);            BottomSheetDialog pop = new BottomSheetDialog(requireActivity(), R.style.BottomSheetEdit);            @SuppressLint("InflateParams") View activity = getLayoutInflater().inflate(R.layout.pop_app_normal_km_info, null, false);            pop.setContentView(activity);            pop.getWindow().findViewById(com.google.android.material.R.id.design_bottom_sheet).setBackgroundResource(android.R.color.transparent);            pop.show();        });        ListKmMethod(false);        // 下拉刷新事件        mSmart.setOnRefreshListener(refreshLayout -> {            ListKmMethod(false);        });    }    private static final String TAG = "AppNormalKmFragment";    private AppKmAdapter adapter;    private int page = 1;    // 获取普通卡密方法    private void ListKmMethod(boolean isLoadMore) {        List data = isLoadMore ? adapter.getData() : new ArrayList<>();        if(isLoadMore && data.size() < page*10){            adapter.getLoadMoreModule().loadMoreEnd();        } else {            OkHttpUtils                    .post()                    .url(host + "/listKm")                    .addParams("appId", encrypt(appId))                    .addParams("category",encrypt("0"))                    .addParams("page",encrypt(String.valueOf(isLoadMore ? ++page : page)))                    .addParams("all",encrypt(String.valueOf(!isLoadMore)))                    .addParams("sign", sign())                    .build()                    .execute(new StringCallback() {                        @Override                        public void onError(Call call, Exception e, int id) {                        }                        @Override                        public void onResponse(String response, int id) {                            try {                                JSONObject allData = new JSONObject(Objects.requireNonNull(decrypt(response)));                                String log = "普通卡密列表:" + allData;                                Log.d(TAG, log);                                int code = allData.getInt("code");                                if (code == CODE_OK) {                                    // adapter.getLoadMoreModule().loadMoreComplete();                                    JSONArray jsonArray = allData.getJSONArray("result");                                    for(int i=0; iobject = jsonArray.getJSONObject(i);                                        data.add(new AppKmData(object.getString("value"), object.getBoolean("isUsed"), object.getString("prize")));                                    }                                    // 如果下拉刷新启用则关闭                                    if (mSmart.isRefreshing()) {                                        mSmart.finishRefresh();                                    }                                    // 如果加载布局显示则隐藏加载布局                                    if (mLoadingStatus.getVisibility() == View.VISIBLE) {                                        mLoadingStatus.setVisibility(View.GONE);                                    }                                    if(data.size() >= page*10){                                        adapter.getLoadMoreModule().setEnableLoadMore(true);                                    }else{                                        adapter.getLoadMoreModule().loadMoreEnd();                                    }                                    adapter.setDiffNewData(data);                                } else {                                    adapter.getLoadMoreModule().loadMoreFail();                                    String msg = allData.getString("msg");                                    showWarning(msg);                                }                            } catch (JSONException e) {                                e.printStackTrace();                            }                        }                    });        }    }}

以上为页面代码,后端没有问题,经测试在activity界面使用没有问题,在fragment界面使用如果数据大于20条就会出现加载一直转不显示内容问题,后端数据都已经可以打印出来,界面不实现加载,小于20条则无问题,可以正常实现加载,求解

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


本次提问扣除的有问必答次数,已经为您补发到账户,我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。