فهرست منبع

1.修改Android Apex Mobile,Result在向下滑动后不能向上滑。

Pen Li 8 سال پیش
والد
کامیت
12f134e158

+ 25 - 0
Apex Mobile/app/src/main/java/com/usai/apex/Result/PullRefreshListView.java

@@ -2,6 +2,7 @@ package com.usai.apex.Result;
 
 import android.content.Context;
 import android.util.AttributeSet;
+import android.util.Log;
 import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewGroup;
@@ -284,6 +285,7 @@ public class PullRefreshListView extends ListView implements AbsListView.OnScrol
     public interface OnRefreshListener{
         void onHeaderStateChange(int state, int offset);
         void onFooterStateChange(int state, int offset);
+        void shouldPullDownToRefresh(boolean should);
     }
 
     /**
@@ -315,9 +317,32 @@ public class PullRefreshListView extends ListView implements AbsListView.OnScrol
     }
 
 
+
+    public int getOffsetY() {
+        View c = getChildAt(0);
+        if (c == null) {
+            return 0;
+        }
+        int firstVisiblePosition = getFirstVisiblePosition();
+        int top = c.getTop();
+        return -top + firstVisiblePosition * c.getHeight() ;
+    }
+
     @Override
     public void onScroll(AbsListView view, int firstVisibleItem,
                          int visibleItemCount, int totalItemCount) {
+
+
+        if (listener != null) {
+            if (getOffsetY() == 0) {
+                listener.shouldPullDownToRefresh(true);
+            } else {
+                listener.shouldPullDownToRefresh(false);
+            }
+        }
+
+        Log.d("Didida", "onScroll: " + firstVisibleItem + "  " + getOffsetY());
+
     }
 
 }

+ 5 - 0
Apex Mobile/app/src/main/java/com/usai/apex/Result/SearchResultActivity.java

@@ -228,6 +228,11 @@ public class SearchResultActivity extends AppCompatActivity {
                     }
                 }
             }
+
+            @Override
+            public void shouldPullDownToRefresh(boolean should) {
+                resultSwipe.setEnabled(should);
+            }
         });
 
         resultSwipe.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {