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 @@ - + +