排程分页

This commit is contained in:
fengjignqi
2026-05-27 09:41:27 +08:00
parent 0ca0a395cd
commit 30e88c8067
2 changed files with 27 additions and 18 deletions

View File

@@ -22,6 +22,7 @@ import com.ckkj.water.index.mvp.IndexImpl;
import com.ckkj.water.index.mvp.IndexPresenter; import com.ckkj.water.index.mvp.IndexPresenter;
import com.ckkj.water.network.BaseBean; import com.ckkj.water.network.BaseBean;
import com.ckkj.water.permission.PermissionActivity; import com.ckkj.water.permission.PermissionActivity;
import com.ckkj.water.plan.entity.WaterPlanWeekEntity;
import com.ckkj.water.utils.show.ToastUtil; import com.ckkj.water.utils.show.ToastUtil;
import com.maning.mlkitscanner.scan.MNScanManager; import com.maning.mlkitscanner.scan.MNScanManager;
import com.maning.mlkitscanner.scan.callback.act.MNScanCallback; import com.maning.mlkitscanner.scan.callback.act.MNScanCallback;
@@ -154,23 +155,26 @@ public class IndexFragment extends BaseFragment<IndexFragmentLayoutBinding, Inde
*/ */
@Override @Override
public void getDeviceListSuccess(List<WaterDeviceEntity> list, int total) { public void getDeviceListSuccess(List<WaterDeviceEntity> list, int total) {
hideDialogLoading(); hideDialogLoading();
viewBinding.refresh.finishRefresh(300); List<WaterDeviceEntity> pageList = list == null ? new ArrayList<>() : list;
viewBinding.refresh.finishLoadMore(300);
if (mCurrentPage == 1) { if (mCurrentPage == 1) {
viewBinding.refresh.finishRefresh(300);
devList.clear(); // 只在刷新时清除 devList.clear(); // 只在刷新时清除
devList = list; devList = pageList;
} else { } else {
devList.addAll(list); viewBinding.refresh.finishLoadMore(300);
devList.addAll(pageList);
} }
deviceAdapter.setNewData(devList); deviceAdapter.setNewData(devList);
// 4. 判断是否还有更多数据 // 4. 判断是否还有更多数据
if (total == deviceAdapter.getItemCount() || list == null || list.size() == 0) { if (deviceAdapter.getItemCount() >= total || pageList.size() == 0) {
// ✅ 告诉 SmartRefreshLayout 没有更多数据了 // 使用 post 延迟调用,避免内部状态冲突导致的循环调用
viewBinding.refresh.setNoMoreData(true); viewBinding.refresh.postDelayed(() -> viewBinding.refresh.setNoMoreData(true), 300);
viewBinding.relNoMore.setVisibility(View.VISIBLE); // 自定义底部提示暂无更多数据 viewBinding.relNoMore.setVisibility(View.VISIBLE); // 自定义底部提示"暂无更多数据"
} else { } else {
viewBinding.refresh.setNoMoreData(false); // 重置状态 viewBinding.refresh.setNoMoreData(false);
viewBinding.relNoMore.setVisibility(View.GONE); viewBinding.relNoMore.setVisibility(View.GONE);
} }

View File

@@ -22,6 +22,7 @@ import com.ckkj.water.utils.manager.ThemeManager;
import com.ckkj.water.utils.show.ToastUtil; import com.ckkj.water.utils.show.ToastUtil;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.gyf.immersionbar.ImmersionBar; import com.gyf.immersionbar.ImmersionBar;
import com.scwang.smart.refresh.footer.ClassicsFooter;
import com.scwang.smart.refresh.layout.api.RefreshHeader; import com.scwang.smart.refresh.layout.api.RefreshHeader;
import java.util.ArrayList; import java.util.ArrayList;
@@ -60,8 +61,10 @@ public class WaterPlanFragment extends BaseFragment<WaterPlanFragmentBinding, Wa
RefreshHeader header = new CustomRefreshHeader(mContext); RefreshHeader header = new CustomRefreshHeader(mContext);
viewBinding.refresh.setRefreshHeader(header); viewBinding.refresh.setRefreshHeader(header);
viewBinding.refresh.setRefreshFooter(new ClassicsFooter(mContext));
viewBinding.refresh.setOnRefreshListener(layout -> { viewBinding.refresh.setOnRefreshListener(layout -> {
mCurrentPage = 1; mCurrentPage = 1;
viewBinding.refresh.setNoMoreData(false);
mPresenter.getWaterPlanList(mCurrentPage); mPresenter.getWaterPlanList(mCurrentPage);
}); });
viewBinding.refresh.setOnLoadMoreListener(layout -> { viewBinding.refresh.setOnLoadMoreListener(layout -> {
@@ -97,22 +100,24 @@ public class WaterPlanFragment extends BaseFragment<WaterPlanFragmentBinding, Wa
public void getWaterConfigListSuccess(List<WaterPlanWeekEntity> list,int total) { public void getWaterConfigListSuccess(List<WaterPlanWeekEntity> list,int total) {
hideDialogLoading(); hideDialogLoading();
viewBinding.refresh.finishRefresh(300); List<WaterPlanWeekEntity> pageList = list == null ? new ArrayList<>() : list;
viewBinding.refresh.finishLoadMore(300);
if (mCurrentPage == 1) { if (mCurrentPage == 1) {
viewBinding.refresh.finishRefresh(300);
mPlanList.clear(); // 只在刷新时清除 mPlanList.clear(); // 只在刷新时清除
mPlanList = list; mPlanList = pageList;
} else { } else {
mPlanList.addAll(list); viewBinding.refresh.finishLoadMore(300);
mPlanList.addAll(pageList);
} }
mAdapter.setNewData(mPlanList); mAdapter.setNewData(mPlanList);
// 4. 判断是否还有更多数据 // 4. 判断是否还有更多数据
if (total == mAdapter.getItemCount() || list == null || list.size() == 0) { if (mAdapter.getItemCount() >= total || pageList.size() == 0) {
// ✅ 告诉 SmartRefreshLayout 没有更多数据了 // 使用 post 延迟调用,避免内部状态冲突导致的循环调用
viewBinding.refresh.setNoMoreData(true); viewBinding.refresh.postDelayed(() -> viewBinding.refresh.setNoMoreData(true), 300);
viewBinding.relNoMore.setVisibility(View.VISIBLE); // 自定义底部提示暂无更多数据 viewBinding.relNoMore.setVisibility(View.VISIBLE); // 自定义底部提示"暂无更多数据"
} else { } else {
viewBinding.refresh.setNoMoreData(false); // 重置状态 viewBinding.refresh.setNoMoreData(false);
viewBinding.relNoMore.setVisibility(View.GONE); viewBinding.relNoMore.setVisibility(View.GONE);
} }