| setProgressBackgroundSchemeResource(int coloRes) | 设置下拉进度条的背景颜色,默认白色。 |
| isRefreshing() | 判断当前的状态是否是刷新状态。 |
| setOnRefreshListener(SwipeRefreshLayout.OnRefreshListener listener) | 设置监听,需要重写onRefresh()方法,顶部下拉时会调用这个方法,在里面实现请求数据的逻辑,设置下拉进度条消失等等。 |
| setRefreshing(boolean refreshing) | 设置刷新状态,true表示正在刷新,false表示取消刷新 |
使用
===
第一步:首先在应用或模块的
build.gradle
文件中添加所需工件的依赖项
dependencies {
implementation “androidx.swiperefreshlayout:swiperefreshlayout:1.0.0”
}
<?xml version="1.0" encoding="utf-8"?>第二步:编写布局文件
<LinearLayout
xmlns:android=“http://schemas.android.com/apk/res/android”
xmlns:app=“http://schemas.android.com/apk/res-auto”
xmlns:tools=“http://schemas.android.com/tools”
android:layout_width=“match_parent”
android:layout_height=“match_parent”
tools:context=“.MainActivity”>
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:layout_width=“match_parent”
android:layout_height=“match_parent”>
<ListView
android:layout_width=“match_parent”
android:layout_height=“match_parent”/>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
注意:这一步中,SwipeRefreshLayout必须包裹一个元素,要不然会报如下错误:空指针异常
好了,到这一步你就可以看到下拉刷新的雏形了
API的使用
======
设置下拉刷新进度条颜色
package com.wust.myswiperefresh;
import androidx.appcompat.app.AppCompatActivity;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//第一步:找到 swipeRefresh 控件
SwipeRefreshLayout srl_my_refresh = findViewById(R.id.srl_my_refresh);
//第二步,设置 下拉刷新时的颜色
srl_my_refresh.setColorSchemeColors(Color.parseColor(“#ff0000”),Color.parseColor(“#00ff00”));
}
}
设置下拉刷新背景色
package com.wust.myswiperefresh;
import androidx.appcompat.app.AppCompatActivity;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//第一步:找到 swipeRefresh 控件
SwipeRefreshLayout srl_my_refresh = findViewById(R.id.srl_my_refresh);
//第二步,设置 下拉刷新时的颜色
srl_my_refresh.setColorSchemeColors(Color.parseColor(“#ff0000”),Color.parseColor(“#00ff00”));
srl_my_refresh.setProgressBackgroundColorSchemeColor(Color.parseColor(“#0000ff”));
}
}
监听下拉刷新
package com.wust.myswiperefresh;
import androidx.appcompat.app.AppCompatActivity;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//第一步:找到 swipeRefresh 控件
SwipeRefreshLayout srl_my_refresh = findViewById(R.id.srl_my_refresh);
//第二步,设置 下拉刷新时的颜色
srl_my_refresh.setColorSchemeColors(Color.parseColor(“#ff0000”),Color.parseColor(“#00ff00”));
srl_my_refresh.setProgressBackgroundColorSchemeColor(Color.parseColor(“#0000ff”));
//监听 刷新是回调
srl_my_refresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {