diff --git a/app/build.gradle b/app/build.gradle
index a0c1c27..16736a8 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -8,8 +8,8 @@ android {
applicationId "me.jingbin.byrecyclerview"
minSdkVersion 16
targetSdkVersion 29
- versionCode 9
- versionName "1.2.0"
+ versionCode 10
+ versionName "1.3.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index aa2a2ad..d917c47 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -45,6 +45,7 @@
+
\ No newline at end of file
diff --git a/app/src/main/java/me/jingbin/byrecyclerview/MainActivity.java b/app/src/main/java/me/jingbin/byrecyclerview/MainActivity.java
index 7fb4387..e3b273a 100644
--- a/app/src/main/java/me/jingbin/byrecyclerview/MainActivity.java
+++ b/app/src/main/java/me/jingbin/byrecyclerview/MainActivity.java
@@ -20,6 +20,7 @@
import me.jingbin.byrecyclerview.activity.HeaderFooterActivity;
import me.jingbin.byrecyclerview.activity.ItemClickActivity;
import me.jingbin.byrecyclerview.activity.ItemPayloadActivity;
+import me.jingbin.byrecyclerview.activity.LoadMoreActivity;
import me.jingbin.byrecyclerview.activity.SecondTypeActivity;
import me.jingbin.byrecyclerview.activity.StateViewActivity;
import me.jingbin.byrecyclerview.activity.StickyItemActivity;
@@ -39,6 +40,7 @@ public class MainActivity extends AppCompatActivity {
private final List list = Arrays.asList(
"下拉刷新、加载更多",
+ "自动加载更多、松手加载更多",
"Add HeaderView/FooterView",
"设置StateView",
"item 点击/长按",
@@ -78,37 +80,40 @@ public void onSingleClick(View v, int position) {
case 0:// 下拉刷新、加载更多
SecondTypeActivity.start(v.getContext(), "refreshLoadMore");
break;
- case 1:// Add HeaderView/FooterView
+ case 1:// 自动加载更多、松手加载更多
+ startActivity(new Intent(MainActivity.this, LoadMoreActivity.class));
+ break;
+ case 2:// Add HeaderView/FooterView
startActivity(new Intent(MainActivity.this, HeaderFooterActivity.class));
break;
- case 2:// 设置StateView
+ case 3:// 设置StateView
startActivity(new Intent(MainActivity.this, StateViewActivity.class));
break;
- case 3:// item 点击/长按
+ case 4:// item 点击/长按
startActivity(new Intent(MainActivity.this, ItemClickActivity.class));
break;
- case 4:// item 局部刷新
+ case 5:// item 局部刷新
startActivity(new Intent(MainActivity.this, ItemPayloadActivity.class));
break;
- case 5:// adapter (多类型、databinding、ListView)
+ case 6:// adapter (多类型、databinding、ListView)
SecondTypeActivity.start(v.getContext(), "adapter");
break;
- case 6:// 万能分割线
+ case 7:// 万能分割线
SecondTypeActivity.start(v.getContext(), "Divider");
break;
- case 7:// item 悬浮置顶
+ case 8:// item 悬浮置顶
startActivity(new Intent(MainActivity.this, StickyItemActivity.class));
break;
- case 8:// Skeleton 骨架图
+ case 9:// Skeleton 骨架图
SecondTypeActivity.start(v.getContext(), "Skeleton");
break;
- case 9:// CoordinatorLayout + RecyclerView 使用示例
+ case 10:// CoordinatorLayout + RecyclerView 使用示例
startActivity(new Intent(MainActivity.this, AppBarLayoutActivity.class));
break;
- case 10:// FlexboxLayoutManager
+ case 11:// FlexboxLayoutManager
startActivity(new Intent(MainActivity.this, FlexBoxActivity.class));
break;
- case 11:// RecyclerView 嵌套滑动置顶
+ case 12:// RecyclerView 嵌套滑动置顶
startActivity(new Intent(MainActivity.this, StickyRvActivity.class));
break;
default:
diff --git a/app/src/main/java/me/jingbin/byrecyclerview/activity/LoadMoreActivity.java b/app/src/main/java/me/jingbin/byrecyclerview/activity/LoadMoreActivity.java
new file mode 100644
index 0000000..57a913b
--- /dev/null
+++ b/app/src/main/java/me/jingbin/byrecyclerview/activity/LoadMoreActivity.java
@@ -0,0 +1,50 @@
+package me.jingbin.byrecyclerview.activity;
+
+import android.os.Bundle;
+
+import androidx.fragment.app.Fragment;
+
+import java.util.ArrayList;
+
+import me.jingbin.byrecyclerview.R;
+import me.jingbin.byrecyclerview.app.BaseActivity;
+import me.jingbin.byrecyclerview.databinding.ActivityRefreshBinding;
+import me.jingbin.byrecyclerview.fragment.RefreshFragment;
+import me.jingbin.byrecyclerview.fragment.SwipeRefreshFragment;
+import me.jingbin.byrecyclerview.view.MyFragmentPagerAdapter;
+
+/**
+ * @author jingbin
+ */
+public class LoadMoreActivity extends BaseActivity {
+
+ private ArrayList mTitleList = new ArrayList<>(2);
+ private ArrayList mFragments = new ArrayList<>(2);
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_refresh);
+ setTitle("自动加载更多、松手加载更多");
+
+ initView();
+ }
+
+ private void initView() {
+ initFragmentList();
+ MyFragmentPagerAdapter myAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager(), mFragments, mTitleList);
+ binding.viewPager.setAdapter(myAdapter);
+ binding.viewPager.setOffscreenPageLimit(1);
+ myAdapter.notifyDataSetChanged();
+ binding.tabLayout.setupWithViewPager(binding.viewPager);
+ }
+
+ private void initFragmentList() {
+ mTitleList.clear();
+ mTitleList.add("自动加载更多");
+ mTitleList.add("松手加载更多");
+ mFragments.add(RefreshFragment.newInstance("auto"));
+ mFragments.add(RefreshFragment.newInstance(""));
+ }
+
+}
diff --git a/app/src/main/java/me/jingbin/byrecyclerview/fragment/RefreshFragment.java b/app/src/main/java/me/jingbin/byrecyclerview/fragment/RefreshFragment.java
index 13362c4..f24dfec 100644
--- a/app/src/main/java/me/jingbin/byrecyclerview/fragment/RefreshFragment.java
+++ b/app/src/main/java/me/jingbin/byrecyclerview/fragment/RefreshFragment.java
@@ -75,6 +75,9 @@ protected void loadData() {
}
private void initAdapter() {
+ // 是否是自动加载更多
+ boolean isAutoLoadMore = "auto".equals(mType);
+
recyclerView = getView(R.id.recyclerView);
mAdapter = new DataAdapter(DataUtil.get(activity, 10));
LinearLayoutManager layoutManager = new LinearLayoutManager(activity);
@@ -83,13 +86,20 @@ private void initAdapter() {
// 加了分割线,滚动条才会置顶
recyclerView.addItemDecoration(new SpacesItemDecoration(recyclerView.getContext(), SpacesItemDecoration.VERTICAL, 1));
recyclerView.setAdapter(mAdapter);
- recyclerView.setOnLoadMoreListener(new ByRecyclerView.OnLoadMoreListener() {
+ /**
+ * 设置自动加载更多一定要通过 【setOnLoadMoreListener】 方式设置!
+ * isAutoLoadMore: 是否自动加载更多,之后的打开/关闭加载更多还是使用 setLoadMoreEnabled()
+ * 2: 滑动到倒数第 2 条数据加载,默认1
+ *
+ * 也可以使用:setOnLoadMoreListener(boolean isAutoLoadMore, OnLoadMoreListener listener)
+ */
+ recyclerView.setOnLoadMoreListener(isAutoLoadMore, 2, new ByRecyclerView.OnLoadMoreListener() {
@Override
public void onLoadMore() {
recyclerView.postDelayed(new Runnable() {
@Override
public void run() {
- if (page == 3) {
+ if (page == 4) {
recyclerView.loadMoreEnd();
return;
}