Android智能刷新框架之——SmartRefreshLayout详解
最近在项目中有用到一个刷新框架,在仔细的学习并应用后,便写下了如下的这篇详解,用于帮助Android初级开发者的学习
下面从一个小demo帮助你快速上手体验SmartRefreshLayout
1>首先我们需要引入SmartRefreshLayout依赖
导入依赖成功后,我们需要重写一个MyApplication类,继承Application,用于设置全局的Header,Footer构建器。
接下来ListAdapter
package com.example.testsmartrefreshlayout;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ListView;
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private ListView listView;
private ListAdapter listAdapter;
private SmartRefreshLayout srl;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView=findViewById(R.id.first_list);
srl=findViewById(R.id.srl);
//加载更多监听
srl.setOnLoadMoreListener(new OnLoadMoreListener() {
@Override
public void onLoadMore(RefreshLayout refreshLayout) {
addData();
}
});
//刷新监听
// srl.setOnRefreshListener(new OnRefreshListener() {
// @Override
// public void onRefresh(RefreshLayout refreshLayout) {
//
// }
// });
//是否需要加载刷新
srl.setEnableAutoLoadMore(true);
srl.setEnableRefresh(true);
// srl.finishLoadMore();
// srl.finishRefresh(1000);
List<String> data=new ArrayList<>();
data.add("xxxx1");
data.add("xxxx2");
data.add("xxxxx3");
data.add("xxxxx4");
data.add("xxxxx5");
data.add("xxxxx6");
listAdapter=new ListAdapter(MainActivity.this,data);
listView.setAdapter(listAdapter);
}
public void addData(){
List<String> newData=new ArrayList<>();
newData.add("xxxxx7");
newData.add("xxxxxxx8");
newData.add("xxxxxxx9");
newData.add("xxxxxxx10");
newData.add("xxxxxxx11");
newData.add("xxxxxxxx12");
listAdapter.addAllData(newData);
srl.finishLoadMore();
}
}
这是MainActivity
代码中都有详细的注释,主要利用了listview去展示SmartRefreshLayout
不会的可以留言,谢谢大家!