SupportV7包中 SwipeRefreshLayout 修改下拉控件的距离

 1  //修改下拉距离
 2         ViewTreeObserver vto = mCategoryResults.mSwipeRefreshLayout.getViewTreeObserver();
 3         vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
 4             public void onGlobalLayout() {
 5 
 6                 final DisplayMetrics metrics = getResources().getDisplayMetrics();
 7                 Float mDistanceToTriggerSync = Math.min(((View) mCategoryResults.mSwipeRefreshLayout.getParent()).getHeight() * 0.6f, 500 * metrics.density);
 8 
 9                 try {
10                     Field field = SwipeRefreshLayout.class.getDeclaredField("mDistanceToTriggerSync");
11                     field.setAccessible(true);
12                     field.setFloat(mCategoryResults.mSwipeRefreshLayout, mDistanceToTriggerSync);
13                 } catch (Exception e) {
14                     e.printStackTrace();
15                 }
16                 ViewTreeObserver obs = mCategoryResults.mSwipeRefreshLayout.getViewTreeObserver();
17                 obs.removeOnGlobalLayoutListener(this);
18             }
19         });
原文地址:https://www.cnblogs.com/dennisac/p/4699978.html