Просмотр исходного кода

停止滑动之后才加载图片

詹子聪 6 лет назад
Родитель
Сommit
d641c66fe3

+ 23 - 0
app/src/main/java/com/miekir/eden/ui/home/coupon/TemplateFragment.java

@@ -6,6 +6,7 @@ import androidx.recyclerview.widget.RecyclerView;
 import androidx.recyclerview.widget.StaggeredGridLayoutManager;
 import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
 
+import com.bumptech.glide.Glide;
 import com.miekir.common.utils.ToastTool;
 import com.miekir.eden.R;
 import com.miekir.eden.base.ITopActionListener;
@@ -67,6 +68,8 @@ public class TemplateFragment extends BaseMVPFragment implements ITemplateView<S
         rv_template = rootView.findViewById(R.id.rv_template);
         // 瀑布流。必须要设置LayoutManager,否则RecyclerView不知道要使用什么布局,从而在界面上不显示
         mLayoutManager = new StaggeredGridLayoutManager(SPAN_COUNT, StaggeredGridLayoutManager.VERTICAL);
+        // 防止瀑布流图片位置变来变去
+        mLayoutManager.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_NONE);
         rv_template.setLayoutManager(mLayoutManager);
 
         // 分割线
@@ -96,6 +99,26 @@ public class TemplateFragment extends BaseMVPFragment implements ITemplateView<S
 
         // 加载更多
         rv_template.addOnScrollListener(new OnRcvScrollListener() {
+            // 滑动时不要去加载图片
+            //RecyclerView.SCROLL_STATE_IDLE //空闲状态
+            //RecyclerView.SCROLL_STATE_FLING //滚动状态
+            //RecyclerView.SCROLL_STATE_TOUCH_SCROLL //触摸后状态
+            @Override
+            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
+                super.onScrollStateChanged(recyclerView, newState);
+                if (getActivity() == null) {
+                    return;
+                }
+                if (newState == RecyclerView.SCROLL_STATE_IDLE) {
+                    //恢复Glide加载图片
+                    Glide.with(getActivity()).resumeRequests();
+                } else {
+                    //禁止Glide加载图片
+                    Glide.with(getActivity()).pauseRequests();
+
+                }
+            }
+
             @Override
             public void onBottom() {
                 super.onBottom();

+ 21 - 0
app/src/main/java/com/miekir/eden/ui/home/goods/GoodsFragment.java

@@ -8,6 +8,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
 
+import com.bumptech.glide.Glide;
 import com.miekir.common.utils.ToastTool;
 import com.miekir.eden.R;
 import com.miekir.eden.base.ITopActionListener;
@@ -89,6 +90,26 @@ public class GoodsFragment extends BaseMVPFragment implements IGoodsView, ITopAc
 
         // 加载更多
         rv_goods.addOnScrollListener(new OnRcvScrollListener(){
+            // 滑动时不要去加载图片
+            //RecyclerView.SCROLL_STATE_IDLE //空闲状态
+            //RecyclerView.SCROLL_STATE_FLING //滚动状态
+            //RecyclerView.SCROLL_STATE_TOUCH_SCROLL //触摸后状态
+            @Override
+            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
+                super.onScrollStateChanged(recyclerView, newState);
+                if (getActivity() == null) {
+                    return;
+                }
+                if (newState == RecyclerView.SCROLL_STATE_IDLE) {
+                    //恢复Glide加载图片
+                    Glide.with(getActivity()).resumeRequests();
+                } else {
+                    //禁止Glide加载图片
+                    Glide.with(getActivity()).pauseRequests();
+
+                }
+            }
+
             @Override
             public void onBottom() {
                 super.onBottom();

+ 17 - 0
app/src/main/java/com/miekir/eden/ui/home/search/SearchActivity.java

@@ -11,6 +11,7 @@ import androidx.appcompat.app.AlertDialog;
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 
+import com.bumptech.glide.Glide;
 import com.miekir.common.utils.ToastTool;
 import com.miekir.common.utils.ViewTool;
 import com.miekir.eden.R;
@@ -80,6 +81,22 @@ public class SearchActivity extends BaseBeiActivity implements View.OnClickListe
         mAdapter.setEmptyView(R.layout.view_empty, rv_search_result);
         // 加载更多
         rv_search_result.addOnScrollListener(new OnRcvScrollListener(){
+            // 滑动时不要去加载图片
+            //RecyclerView.SCROLL_STATE_IDLE //空闲状态
+            //RecyclerView.SCROLL_STATE_FLING //滚动状态
+            //RecyclerView.SCROLL_STATE_TOUCH_SCROLL //触摸后状态
+            @Override
+            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
+                super.onScrollStateChanged(recyclerView, newState);
+                if (newState == RecyclerView.SCROLL_STATE_IDLE) {
+                    //恢复Glide加载图片
+                    Glide.with(getApplicationContext()).resumeRequests();
+                } else {
+                    //禁止Glide加载图片
+                    Glide.with(getApplicationContext()).pauseRequests();
+                }
+            }
+
             @Override
             public void onBottom() {
                 super.onBottom();

+ 17 - 0
app/src/main/java/com/miekir/eden/ui/mine/fav/MyFavActivity.java

@@ -6,6 +6,7 @@ import androidx.annotation.Nullable;
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 
+import com.bumptech.glide.Glide;
 import com.miekir.common.utils.ToastTool;
 import com.miekir.eden.R;
 import com.miekir.eden.base.BaseBeiActivity;
@@ -59,6 +60,22 @@ public class MyFavActivity extends BaseBeiActivity implements IMyFavView {
 
         // 加载更多
         rv_search_result.addOnScrollListener(new OnRcvScrollListener(){
+            // 滑动时不要去加载图片
+            //RecyclerView.SCROLL_STATE_IDLE //空闲状态
+            //RecyclerView.SCROLL_STATE_FLING //滚动状态
+            //RecyclerView.SCROLL_STATE_TOUCH_SCROLL //触摸后状态
+            @Override
+            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
+                super.onScrollStateChanged(recyclerView, newState);
+                if (newState == RecyclerView.SCROLL_STATE_IDLE) {
+                    //恢复Glide加载图片
+                    Glide.with(getApplicationContext()).resumeRequests();
+                } else {
+                    //禁止Glide加载图片
+                    Glide.with(getApplicationContext()).pauseRequests();
+                }
+            }
+
             @Override
             public void onBottom() {
                 super.onBottom();