From db01a70055f5a8d7f6fe8775378c10edd0705df1 Mon Sep 17 00:00:00 2001
From: StrangerFriend <1758297631@qq.com>
Date: Sun, 31 May 2020 10:08:33 +0800
Subject: [PATCH 1/5] =?UTF-8?q?recyclerview:1.1.0=E5=8D=87=E7=BA=A7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
config.gradle | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/config.gradle b/config.gradle
index 739b311..e9e8ecf 100644
--- a/config.gradle
+++ b/config.gradle
@@ -44,6 +44,6 @@ ext {
xDesign : 'com.google.android.material:material:1.0.0',
xAppCompat : 'androidx.appcompat:appcompat:1.0.2',
- xRecyclerView: 'androidx.recyclerview:recyclerview:1.0.0',
+ xRecyclerView: 'androidx.recyclerview:recyclerview:1.1.0',
xCardView : 'androidx.cardview:cardview:1.0.0']
}
\ No newline at end of file
From 88284a4e301ff28eab60021c91074b6e005f6999 Mon Sep 17 00:00:00 2001
From: StrangerFriend <1758297631@qq.com>
Date: Sun, 31 May 2020 11:12:55 +0800
Subject: [PATCH 2/5] =?UTF-8?q?nescrollview=E5=B5=8C=E5=A5=97=E6=97=B6?=
=?UTF-8?q?=E7=9A=84=E6=BB=91=E5=8A=A8=E5=A4=84=E7=90=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../recyclerview/SwipeRecyclerView.java | 2 +-
xSample/src/main/AndroidManifest.xml | 3 +
.../sample/activity/MainActivity.java | 5 +
.../NestscrollViewActivity.java | 139 ++++++++++++++++++
.../main/res/layout/item_nestscorllview.xml | 18 +++
.../res/layout/item_nestscorllview_item.xml | 19 +++
xSample/src/main/res/values/array.xml | 1 +
7 files changed, 186 insertions(+), 1 deletion(-)
create mode 100644 xSample/src/main/java/com/yanzhenjie/recyclerview/sample/activity/nestscrollview/NestscrollViewActivity.java
create mode 100644 xSample/src/main/res/layout/item_nestscorllview.xml
create mode 100644 xSample/src/main/res/layout/item_nestscorllview_item.xml
diff --git a/x/src/main/java/com/yanzhenjie/recyclerview/SwipeRecyclerView.java b/x/src/main/java/com/yanzhenjie/recyclerview/SwipeRecyclerView.java
index be1ef6b..9f5a3fd 100644
--- a/x/src/main/java/com/yanzhenjie/recyclerview/SwipeRecyclerView.java
+++ b/x/src/main/java/com/yanzhenjie/recyclerview/SwipeRecyclerView.java
@@ -743,7 +743,7 @@ public void onScrolled(int dx, int dy) {
}
}
- private void dispatchLoadMore() {
+ public void dispatchLoadMore() {
if (isLoadError) return;
if (!isAutoLoadMore) {
diff --git a/xSample/src/main/AndroidManifest.xml b/xSample/src/main/AndroidManifest.xml
index 1e94d72..fce52a7 100644
--- a/xSample/src/main/AndroidManifest.xml
+++ b/xSample/src/main/AndroidManifest.xml
@@ -130,6 +130,9 @@
+
\ No newline at end of file
diff --git a/xSample/src/main/java/com/yanzhenjie/recyclerview/sample/activity/MainActivity.java b/xSample/src/main/java/com/yanzhenjie/recyclerview/sample/activity/MainActivity.java
index 117a271..f76461c 100644
--- a/xSample/src/main/java/com/yanzhenjie/recyclerview/sample/activity/MainActivity.java
+++ b/xSample/src/main/java/com/yanzhenjie/recyclerview/sample/activity/MainActivity.java
@@ -27,6 +27,7 @@
import com.yanzhenjie.recyclerview.sample.activity.menu.MenuActivity;
import com.yanzhenjie.recyclerview.sample.activity.move.MoveActivity;
import com.yanzhenjie.recyclerview.sample.activity.nested.NestedActivity;
+import com.yanzhenjie.recyclerview.sample.activity.nestscrollview.NestscrollViewActivity;
import java.util.Arrays;
import java.util.List;
@@ -79,6 +80,10 @@ public void onItemClick(View itemView, int position) {
startActivity(new Intent(this, GroupActivity.class));
break;
}
+ case 7: {
+ startActivity(new Intent(this, NestscrollViewActivity.class));
+ break;
+ }
}
}
diff --git a/xSample/src/main/java/com/yanzhenjie/recyclerview/sample/activity/nestscrollview/NestscrollViewActivity.java b/xSample/src/main/java/com/yanzhenjie/recyclerview/sample/activity/nestscrollview/NestscrollViewActivity.java
new file mode 100644
index 0000000..175145b
--- /dev/null
+++ b/xSample/src/main/java/com/yanzhenjie/recyclerview/sample/activity/nestscrollview/NestscrollViewActivity.java
@@ -0,0 +1,139 @@
+package com.yanzhenjie.recyclerview.sample.activity.nestscrollview;
+
+import android.os.Bundle;
+import android.os.Handler;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.widget.NestedScrollView;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.yanzhenjie.recyclerview.SwipeRecyclerView;
+import com.yanzhenjie.recyclerview.sample.R;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class NestscrollViewActivity extends AppCompatActivity {
+
+ private NestedScrollView mNestedScrollView;
+
+ private SwipeRecyclerView mSwipeRecyclerView;
+
+ private List mList ;
+
+ private Handler mHandler = new Handler();
+
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.item_nestscorllview);
+ mNestedScrollView = findViewById(R.id.nestedScrollView);
+ mSwipeRecyclerView = findViewById(R.id.swipeRecyclerView);
+
+ mList = new ArrayList<>();
+ mSwipeRecyclerView.setLayoutManager(new LinearLayoutManager(this));
+ mSwipeRecyclerView.setAdapter(new Adapter());
+ setData();
+ mSwipeRecyclerView.getAdapter().notifyDataSetChanged();
+
+ mSwipeRecyclerView.useDefaultLoadMore();
+ mSwipeRecyclerView.setLoadMoreListener(new SwipeRecyclerView.LoadMoreListener() {
+ @Override
+ public void onLoadMore() {
+ mHandler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ setData();
+ mSwipeRecyclerView.getAdapter().notifyDataSetChanged();
+ }
+ },2000);
+ }
+ });
+
+ mNestedScrollView.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
+ @Override
+ public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
+ View onlyChild = v.getChildAt(0);
+ if (onlyChild.getHeight() <= scrollY + v.getHeight()) {
+ // 如果满足就是到底部了
+ //该方法需要是public
+ mSwipeRecyclerView.dispatchLoadMore();
+
+ /* //如果dispatchLoadMore 是private
+ mSwipeRecyclerView.onScrollStateChanged(2);
+ mSwipeRecyclerView.onScrolled(scrollX,scrollY);*/
+
+ }
+
+ }
+ });
+
+ //如果dispatchLoadMore是私有的需要特别处理
+ mNestedScrollView.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
+ @Override
+ public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
+ View onlyChild = v.getChildAt(0);
+ if (onlyChild.getHeight() <= scrollY + v.getHeight()) {
+ // 如果满足就是到底部了
+ mSwipeRecyclerView.onScrollStateChanged(2);
+ mSwipeRecyclerView.onScrolled(scrollX,scrollY);
+ }
+
+ }
+ });
+
+ }
+
+ private void setData() {
+ int baseNo = mList.size() ;
+ for(int i = baseNo ; i < baseNo + 20 ; i++ ){
+ mList.add(i);
+ }
+ /*//如果dispatchLoadMore是private
+ //去掉RecyclerView内的滚动状态,要不页面滚动会卡顿
+ //mSwipeRecyclerView.onScrollStateChanged(-1);*/
+
+ mSwipeRecyclerView.loadMoreFinish(false,true);
+ }
+
+ private class Adapter extends RecyclerView.Adapter {
+
+
+ @NonNull
+ @Override
+ public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_nestscorllview_item,parent,false);
+ ViewHolder viewHolder = new ViewHolder(view);
+ return viewHolder;
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
+ TextView tvItemText = holder.itemView.findViewById(R.id.tvItemText);
+ tvItemText.setText("第" + mList.get(position).toString() + "个");
+ }
+
+ @Override
+ public int getItemCount() {
+ return mList.size();
+ }
+ }
+
+ private class ViewHolder extends RecyclerView.ViewHolder {
+
+ View itemView;
+
+ public ViewHolder(@NonNull View itemView) {
+ super(itemView);
+ this.itemView = itemView;
+ }
+ }
+
+}
diff --git a/xSample/src/main/res/layout/item_nestscorllview.xml b/xSample/src/main/res/layout/item_nestscorllview.xml
new file mode 100644
index 0000000..7291c8a
--- /dev/null
+++ b/xSample/src/main/res/layout/item_nestscorllview.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/xSample/src/main/res/layout/item_nestscorllview_item.xml b/xSample/src/main/res/layout/item_nestscorllview_item.xml
new file mode 100644
index 0000000..b269b63
--- /dev/null
+++ b/xSample/src/main/res/layout/item_nestscorllview_item.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/xSample/src/main/res/values/array.xml b/xSample/src/main/res/values/array.xml
index 76d6059..328f249 100644
--- a/xSample/src/main/res/values/array.xml
+++ b/xSample/src/main/res/values/array.xml
@@ -23,6 +23,7 @@
- 和滑动布局嵌套使用
- 二级列表
- Sticky分组效果
+ - NestedScrollView嵌套
From b731c3fd3a2bff2e4c2217c4f48fac627c3f3660 Mon Sep 17 00:00:00 2001
From: StrangerFriend <1758297631@qq.com>
Date: Sun, 31 May 2020 11:14:54 +0800
Subject: [PATCH 3/5] =?UTF-8?q?nescrollview=E5=B5=8C=E5=A5=97=E6=97=B6?=
=?UTF-8?q?=E7=9A=84=E6=BB=91=E5=8A=A8=E5=A4=84=E7=90=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../nestscrollview/NestscrollViewActivity.java | 14 --------------
1 file changed, 14 deletions(-)
diff --git a/xSample/src/main/java/com/yanzhenjie/recyclerview/sample/activity/nestscrollview/NestscrollViewActivity.java b/xSample/src/main/java/com/yanzhenjie/recyclerview/sample/activity/nestscrollview/NestscrollViewActivity.java
index 175145b..bffe6f2 100644
--- a/xSample/src/main/java/com/yanzhenjie/recyclerview/sample/activity/nestscrollview/NestscrollViewActivity.java
+++ b/xSample/src/main/java/com/yanzhenjie/recyclerview/sample/activity/nestscrollview/NestscrollViewActivity.java
@@ -75,20 +75,6 @@ public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int old
}
});
- //如果dispatchLoadMore是私有的需要特别处理
- mNestedScrollView.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
- @Override
- public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
- View onlyChild = v.getChildAt(0);
- if (onlyChild.getHeight() <= scrollY + v.getHeight()) {
- // 如果满足就是到底部了
- mSwipeRecyclerView.onScrollStateChanged(2);
- mSwipeRecyclerView.onScrolled(scrollX,scrollY);
- }
-
- }
- });
-
}
private void setData() {
From f789b9d6260e46a4411ab51ae2c1540bb37e2441 Mon Sep 17 00:00:00 2001
From: StrangerFriend <1758297631@qq.com>
Date: Sun, 31 May 2020 11:25:11 +0800
Subject: [PATCH 4/5] no message
---
.../sample/activity/nestscrollview/NestscrollViewActivity.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xSample/src/main/java/com/yanzhenjie/recyclerview/sample/activity/nestscrollview/NestscrollViewActivity.java b/xSample/src/main/java/com/yanzhenjie/recyclerview/sample/activity/nestscrollview/NestscrollViewActivity.java
index bffe6f2..a444226 100644
--- a/xSample/src/main/java/com/yanzhenjie/recyclerview/sample/activity/nestscrollview/NestscrollViewActivity.java
+++ b/xSample/src/main/java/com/yanzhenjie/recyclerview/sample/activity/nestscrollview/NestscrollViewActivity.java
@@ -53,7 +53,7 @@ public void run() {
setData();
mSwipeRecyclerView.getAdapter().notifyDataSetChanged();
}
- },2000);
+ },1 * 1000);
}
});
From a1c48558f622551183e81efbeebaf48ec090a370 Mon Sep 17 00:00:00 2001
From: StrangerFriend <1758297631@qq.com>
Date: Sun, 31 May 2020 11:32:19 +0800
Subject: [PATCH 5/5] no message
---
xSample/src/main/AndroidManifest.xml | 2 +-
.../NestscrollViewActivity.java | 21 +++++++++++++++++++
.../main/res/layout/item_nestscorllview.xml | 3 ++-
3 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/xSample/src/main/AndroidManifest.xml b/xSample/src/main/AndroidManifest.xml
index fce52a7..15990d8 100644
--- a/xSample/src/main/AndroidManifest.xml
+++ b/xSample/src/main/AndroidManifest.xml
@@ -132,7 +132,7 @@
android:label="Item菜单Sticky分组"/>
+ android:label="NestscrollView嵌套"/>
\ No newline at end of file
diff --git a/xSample/src/main/java/com/yanzhenjie/recyclerview/sample/activity/nestscrollview/NestscrollViewActivity.java b/xSample/src/main/java/com/yanzhenjie/recyclerview/sample/activity/nestscrollview/NestscrollViewActivity.java
index a444226..a110387 100644
--- a/xSample/src/main/java/com/yanzhenjie/recyclerview/sample/activity/nestscrollview/NestscrollViewActivity.java
+++ b/xSample/src/main/java/com/yanzhenjie/recyclerview/sample/activity/nestscrollview/NestscrollViewActivity.java
@@ -3,13 +3,16 @@
import android.os.Bundle;
import android.os.Handler;
import android.view.LayoutInflater;
+import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
import androidx.core.widget.NestedScrollView;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -34,6 +37,13 @@ public class NestscrollViewActivity extends AppCompatActivity {
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.item_nestscorllview);
+ Toolbar toolbar = findViewById(R.id.toolbar);
+ setSupportActionBar(toolbar);
+ ActionBar actionBar = getSupportActionBar();
+ assert actionBar != null;
+ actionBar.setDisplayHomeAsUpEnabled(true);
+
+
mNestedScrollView = findViewById(R.id.nestedScrollView);
mSwipeRecyclerView = findViewById(R.id.swipeRecyclerView);
@@ -77,6 +87,9 @@ public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int old
}
+ /**
+ * 制作模拟数据
+ */
private void setData() {
int baseNo = mList.size() ;
for(int i = baseNo ; i < baseNo + 20 ; i++ ){
@@ -122,4 +135,12 @@ public ViewHolder(@NonNull View itemView) {
}
}
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ if (item.getItemId() == android.R.id.home) {
+ finish();
+ }
+ return true;
+ }
+
}
diff --git a/xSample/src/main/res/layout/item_nestscorllview.xml b/xSample/src/main/res/layout/item_nestscorllview.xml
index 7291c8a..f46481d 100644
--- a/xSample/src/main/res/layout/item_nestscorllview.xml
+++ b/xSample/src/main/res/layout/item_nestscorllview.xml
@@ -2,7 +2,8 @@
-
+
+