Android手把手教大家制作APP首页(下拉刷新、自动加载)完整攻略
1. 引入依赖库
在build.gradle
文件中添加以下依赖:
implementation 'com.github.yalantis:PullToRefresh:1.2.0'
2. 创建布局文件
在activity_main.xml
文件中添加PullToRefreshView
和RecyclerView
组件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.yalantis.pulltomakesoup.PullToRefreshView
android:id="@+id/pull_to_refresh"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</com.yalantis.pulltomakesoup.PullToRefreshView>
</RelativeLayout>
3. 实现下拉刷新和自动加载功能
在MainActivity.java
文件中添加以下代码:
public class MainActivity extends AppCompatActivity {
private PullToRefreshView mPullToRefreshView;
private RecyclerView mRecyclerView;
private MyAdapter mAdapter;
private List<String> mDataList = new ArrayList<>();
private int mPage = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mPullToRefreshView = findViewById(R.id.pull_to_refresh);
mRecyclerView = findViewById(R.id.recycler_view);
// 设置下拉刷新和自动加载监听器
mPullToRefreshView.setOnRefreshListener(new PullToRefreshView.OnRefreshListener() {
@Override
public void onRefresh() {
// 下拉刷新操作
reload();
}
});
mRecyclerView.addOnScrollListener(new EndlessRecyclerOnScrollListener() {
@Override
public void onLoadMore() {
// 自动加载操作
loadMore();
}
});
// 设置RecyclerView的布局管理器
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
mRecyclerView.setLayoutManager(layoutManager);
// 设置RecyclerView的适配器
mAdapter = new MyAdapter(this, mDataList);
mRecyclerView.setAdapter(mAdapter);
// 初始化数据
initData();
}
// 初始化数据
private void initData() {
for (int i = 0; i < 20; i++) {
mDataList.add("Item " + i);
}
mAdapter.notifyDataSetChanged();
}
// 下拉刷新操作
private void reload() {
mDataList.clear();
mPage = 0;
for (int i = 0; i < 20; i++) {
mDataList.add("Item " + i);
}
mAdapter.notifyDataSetChanged();
mPullToRefreshView.setRefreshing(false);
}
// 自动加载操作
private void loadMore() {
mPage++;
for (int i = 0; i < 20; i++) {
mDataList.add("Item " + (mPage * 20 + i));
}
mAdapter.notifyDataSetChanged();
}
}
注:EndlessRecyclerOnScrollListener
是自定义的RecyclerView滚动监听器,用于实现自动加载功能。
4. 示例说明
示例一:下拉刷新
当用户下拉列表时,触发OnRefreshListener
监听器,执行reload()
方法,重新加载最新的数据。
mPullToRefreshView.setOnRefreshListener(new PullToRefreshView.OnRefreshListener() {
@Override
public void onRefresh() {
// 下拉刷新操作
reload();
}
});
private void reload() {
mDataList.clear();
mPage = 0;
for (int i = 0; i < 20; i++) {
mDataList.add("Item " + i);
}
mAdapter.notifyDataSetChanged();
mPullToRefreshView.setRefreshing(false);
}
示例二:自动加载
当用户滑动到列表的底部时,触发EndlessRecyclerOnScrollListener
监听器,执行loadMore()
方法,自动加载更多的数据。
mRecyclerView.addOnScrollListener(new EndlessRecyclerOnScrollListener() {
@Override
public void onLoadMore() {
// 自动加载操作
loadMore();
}
});
private void loadMore() {
mPage++;
for (int i = 0; i < 20; i++) {
mDataList.add("Item " + (mPage * 20 + i));
}
mAdapter.notifyDataSetChanged();
}
总结
本文介绍了如何在Android应用程序中实现列表的下拉刷新和自动加载功能,使用了第三方库PullToRefresh
,并给出了两个示例说明。希望能对初学者有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android手把手教大家制作APP首页(下拉刷新、自动加载) - Python技术站