添加依赖
//下拉刷新
implementation 'com.jcodecraeer:xrecyclerview:1.5.9'
xml引用
<com.jcodecraeer.xrecyclerview.XRecyclerView
android:id="@+id/act_xrecycler_rv"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
>
</com.jcodecraeer.xrecyclerview.XRecyclerView>
使用方法跟RecyclerView几乎一样
适配器
public class rvAdapter extends RecyclerView.Adapter<rvAdapter.LinearViewHolder> {
private Context context;
private List<String> list;
public rvAdapter(Context context, List list) {
this.context = context;
this.list = list;
}
@Override
public LinearViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new LinearViewHolder(LayoutInflater.from(context)
.inflate(R.layout.item_rv,parent,false));
}
@Override
public void onBindViewHolder(LinearViewHolder holder, int position) {
holder.tv.setText(list.get(position));
}
@Override
public int getItemCount() {
return list.size();
}
class LinearViewHolder extends RecyclerView.ViewHolder {
private final TextView tv;
public LinearViewHolder(View itemView) {
super(itemView);
//声明布局里的控件
tv = itemView.findViewById(R.id.item_text);
}
}
}
MainActivity.java
public class MainActivity extends AppCompatActivity {
private XRecyclerView xRecyclerView;
private rvAdapter adapter;
private List<String> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rv();
}
private void rv() {
list = new ArrayList<>();
for (int i = 0 ;i < 30;i++){
list.add("数据 : " +i);
}
xRecyclerView = findViewById(R.id.act_xrecycler_rv);
adapter = new rvAdapter(this, list);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
xRecyclerView.setLayoutManager(layoutManager);
xRecyclerView.setAdapter(adapter);
// 可以设置是否开启加载更多/下拉刷新
xRecyclerView.setLoadingMoreEnabled(true);
// 可以设置加载更多的样式,很多种
xRecyclerView.setLoadingMoreProgressStyle(ProgressStyle.Pacman);
// 如果设置上这个,下拉刷新的时候会显示上次刷新的时间
xRecyclerView.getDefaultRefreshHeaderView() // get default refresh header view
.setRefreshTimeVisible(true); // make refresh time visible,false means hiding
xRecyclerView.setLoadingListener(new XRecyclerView.LoadingListener() {
@Override
public void onRefresh() {
Log.i("TEST11", "onRefresh");
// 为了看效果,加了一个等待效果,正式的时候直接写mRecyclerView.refreshComplete();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
xRecyclerView.refreshComplete();
}
}, 2000);
}
@Override
public void onLoadMore() {
Log.i("TEST11","onLoadMore");
// 为了看效果,加了一个等待效果,正式的时候直接写mRecyclerView.loadMoreComplete();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
xRecyclerView.loadMoreComplete();
}
}, 2000);
}
});
}
}