1、xml
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/swipe_layout">
<ListView
android:id="@+id/lv_list"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
2、
//步骤1:
Activity implements View.OnClickListener,SwipeRefreshLayout.OnRefreshListener
//步骤2:
private SwipeRefreshLayout swipeRefreshLayout;
private ListView lv_list;
swipeRefreshLayout = findViewById(R.id.swipe_layout);
lv_list = findViewById(R.id.lv_list);
//步骤3:
//设置下拉刷新图标的大小 只支持两种: DEFAULT 和 LARGE
swipeRefreshLayout.setSize(CircularProgressDrawable.LARGE);
//设置刷新图标的颜色,在手指下滑刷新时使用第一个颜色,在刷新中,会一个个颜色进行切换 这里是传入 int... colors
swipeRefreshLayout.setColorSchemeColors(Color.BLACK, Color.GREEN, Color.RED, Color.YELLOW, Color.BLUE);
//设置刷新图标的颜色, 在手指下滑刷新时使用第一个颜色,和 setColorSchemeColors 传递的参数不一样,这里是传入int colorResIds
swipeRefreshLayout.setColorSchemeResources(R.color.color_ff8d85, R.color.color_93caea, R.color.color_93caaa);
//设置刷新图标的背景颜色
swipeRefreshLayout.setProgressBackgroundColorSchemeResource(R.color.color_F2F2F2);
//设置动画样式下拉的起始点和结束点,scale设置是否需要放大或者缩小动画
// 第一个参数:默认为false,设置为true,下拉过程中刷新图标就会从小变大
// 第二个参数:起始位置,刷新图标距离顶部像素px
// 第三个参数:结束位置,刷新图标距离顶部像素px
//swipeRefreshLayout.setProgressViewOffset(false, 100, 200);
//设置动画样式下拉的结束点 scale设置是否需要放大或者缩小动画
// 第二个参数:结束位置,刷新图标距离顶部像素px
//swipeRefreshLayout.setProgressViewEndTarget(false, 500);
//设置可以将刷新指示器拉出其静止位置的距离(以像素为单位)
//swipeRefreshLayout.setSlingshotDistance(600);
//false:禁用手势下拉刷新动画
//swipeRefreshLayout.setEnabled(false);
//设置监听器,需要重写onRefresh()方法
swipeRefreshLayout.setOnRefreshListener(this);
lv_service_person.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView absListView, int i) {
if (i == SCROLL_STATE_IDLE){
int lastVisibleItem = servicePersonShortBeanList.size()-1;
int totalItemCount = servicePersonShortBeanList.size();
if (lastVisibleItem == servicePersonShortBeanList.size()-1){
new Thread(new Runnable() {
@Override
public void run() {
loadMoreData();
}
}).start();
}
}
}
@Override
public void onScroll(AbsListView absListView, int i, int i1, int i2) {
//滑动时不处理
}
});