From 30e88c8067e8034c57f215b63ca854f5bf58ee9f Mon Sep 17 00:00:00 2001 From: fengjignqi <15192412330@163.com> Date: Wed, 27 May 2026 09:41:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=92=E7=A8=8B=E5=88=86=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ckkj/water/index/IndexFragment.java | 22 ++++++++++-------- .../ckkj/water/plan/WaterPlanFragment.java | 23 +++++++++++-------- 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/com/ckkj/water/index/IndexFragment.java b/app/src/main/java/com/ckkj/water/index/IndexFragment.java index 92148cb..bfc49a1 100644 --- a/app/src/main/java/com/ckkj/water/index/IndexFragment.java +++ b/app/src/main/java/com/ckkj/water/index/IndexFragment.java @@ -22,6 +22,7 @@ import com.ckkj.water.index.mvp.IndexImpl; import com.ckkj.water.index.mvp.IndexPresenter; import com.ckkj.water.network.BaseBean; import com.ckkj.water.permission.PermissionActivity; +import com.ckkj.water.plan.entity.WaterPlanWeekEntity; import com.ckkj.water.utils.show.ToastUtil; import com.maning.mlkitscanner.scan.MNScanManager; import com.maning.mlkitscanner.scan.callback.act.MNScanCallback; @@ -154,23 +155,26 @@ public class IndexFragment extends BaseFragment list, int total) { + hideDialogLoading(); - viewBinding.refresh.finishRefresh(300); - viewBinding.refresh.finishLoadMore(300); + List pageList = list == null ? new ArrayList<>() : list; if (mCurrentPage == 1) { + viewBinding.refresh.finishRefresh(300); devList.clear(); // 只在刷新时清除 - devList = list; + devList = pageList; } else { - devList.addAll(list); + viewBinding.refresh.finishLoadMore(300); + devList.addAll(pageList); } deviceAdapter.setNewData(devList); + // 4. 判断是否还有更多数据 - if (total == deviceAdapter.getItemCount() || list == null || list.size() == 0) { - // ✅ 告诉 SmartRefreshLayout 没有更多数据了 - viewBinding.refresh.setNoMoreData(true); - viewBinding.relNoMore.setVisibility(View.VISIBLE); // 自定义底部提示“暂无更多数据” + if (deviceAdapter.getItemCount() >= total || pageList.size() == 0) { + // 使用 post 延迟调用,避免内部状态冲突导致的循环调用 + viewBinding.refresh.postDelayed(() -> viewBinding.refresh.setNoMoreData(true), 300); + viewBinding.relNoMore.setVisibility(View.VISIBLE); // 自定义底部提示"暂无更多数据" } else { - viewBinding.refresh.setNoMoreData(false); // 重置状态 + viewBinding.refresh.setNoMoreData(false); viewBinding.relNoMore.setVisibility(View.GONE); } diff --git a/app/src/main/java/com/ckkj/water/plan/WaterPlanFragment.java b/app/src/main/java/com/ckkj/water/plan/WaterPlanFragment.java index a6a4616..e541ac5 100644 --- a/app/src/main/java/com/ckkj/water/plan/WaterPlanFragment.java +++ b/app/src/main/java/com/ckkj/water/plan/WaterPlanFragment.java @@ -22,6 +22,7 @@ import com.ckkj.water.utils.manager.ThemeManager; import com.ckkj.water.utils.show.ToastUtil; import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; +import com.scwang.smart.refresh.footer.ClassicsFooter; import com.scwang.smart.refresh.layout.api.RefreshHeader; import java.util.ArrayList; @@ -60,8 +61,10 @@ public class WaterPlanFragment extends BaseFragment { mCurrentPage = 1; + viewBinding.refresh.setNoMoreData(false); mPresenter.getWaterPlanList(mCurrentPage); }); viewBinding.refresh.setOnLoadMoreListener(layout -> { @@ -97,22 +100,24 @@ public class WaterPlanFragment extends BaseFragment list,int total) { hideDialogLoading(); - viewBinding.refresh.finishRefresh(300); - viewBinding.refresh.finishLoadMore(300); + List pageList = list == null ? new ArrayList<>() : list; if (mCurrentPage == 1) { + viewBinding.refresh.finishRefresh(300); mPlanList.clear(); // 只在刷新时清除 - mPlanList = list; + mPlanList = pageList; } else { - mPlanList.addAll(list); + viewBinding.refresh.finishLoadMore(300); + mPlanList.addAll(pageList); } mAdapter.setNewData(mPlanList); + // 4. 判断是否还有更多数据 - if (total == mAdapter.getItemCount() || list == null || list.size() == 0) { - // ✅ 告诉 SmartRefreshLayout 没有更多数据了 - viewBinding.refresh.setNoMoreData(true); - viewBinding.relNoMore.setVisibility(View.VISIBLE); // 自定义底部提示“暂无更多数据” + if (mAdapter.getItemCount() >= total || pageList.size() == 0) { + // 使用 post 延迟调用,避免内部状态冲突导致的循环调用 + viewBinding.refresh.postDelayed(() -> viewBinding.refresh.setNoMoreData(true), 300); + viewBinding.relNoMore.setVisibility(View.VISIBLE); // 自定义底部提示"暂无更多数据" } else { - viewBinding.refresh.setNoMoreData(false); // 重置状态 + viewBinding.refresh.setNoMoreData(false); viewBinding.relNoMore.setVisibility(View.GONE); }