首先看一下布局
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/swip"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.recyclerview.widget.RecyclerView
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:id="@+id/recy_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="9dp"
tools:listitem="@layout/item_profile" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
看一下实际Activity
public class PageActivity extends BaseDJActivity {
private SwipeRefreshLayout swipeRefreshLayout;
private RecyclerView recyList;
private ProFileAdapert proFileAdapert;
private String companyId;
private ProFileModel proFileModel;
private List<ProFileBean.ListBean> listProFile = new ArrayList<>();
private int page = 1;
private boolean isNull = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.page_activity);
initView();
}
private void initView() {
recyList = findViewById(R.id.recy_list);
swipeRefreshLayout = findViewById(R.id.swip);
recyList.setLayoutManager(new LinearLayoutManager(PageActivity.this));
proFileModel = new ViewModelProvider(this).get(ProFileModel.class);
companyId = CommenArgs.userInfo.getCompanyId();
initData(1);
recyList.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if (isSlideToBottom(recyclerView)) {
if (listProFile.size() >= 10) {
if (isNull != true) {
page++;
initData(page);
}
}
}
}
});
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
page = 1;
listProFile.clear();
initData(1);
proFileAdapert.notifyDataSetChanged();
swipeRefreshLayout.setRefreshing(false);
}
}, 1500);
}
});
}
public void initData(int page) {
//网络请求拿到数据
proFileModel.getFroFilelists(this, companyId, page + "", 10 + "", "", "", new ICell<ProFileBean>() {
@Override
public void cell(ProFileBean cell) {
if (cell.getList().size() != 0) {
listProFile.clear();
listProFile.addAll(cell.getList());
recyList.setAdapter(proFileAdapert = new ProFileAdapert(PageActivity.this, listProFile, ""));
} else {
isNull = true;
}
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
}
protected boolean isSlideToBottom(RecyclerView recyclerView) {
if (recyclerView == null) return false;
if (recyclerView.computeVerticalScrollExtent() + recyclerView.computeVerticalScrollOffset() >= recyclerView.computeVerticalScrollRange())
return true;
return false;
}
}