排程分页

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.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<WaterPlanFragmentBinding, Wa
RefreshHeader header = new CustomRefreshHeader(mContext);
viewBinding.refresh.setRefreshHeader(header);
viewBinding.refresh.setRefreshFooter(new ClassicsFooter(mContext));
viewBinding.refresh.setOnRefreshListener(layout -> {
mCurrentPage = 1;
viewBinding.refresh.setNoMoreData(false);
mPresenter.getWaterPlanList(mCurrentPage);
});
viewBinding.refresh.setOnLoadMoreListener(layout -> {
@@ -97,22 +100,24 @@ public class WaterPlanFragment extends BaseFragment<WaterPlanFragmentBinding, Wa
public void getWaterConfigListSuccess(List<WaterPlanWeekEntity> list,int total) {
hideDialogLoading();
viewBinding.refresh.finishRefresh(300);
viewBinding.refresh.finishLoadMore(300);
List<WaterPlanWeekEntity> 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);
}