Java Code Examples for com.handmark.pulltorefresh.library.PullToRefreshBase.State#OVERSCROLLING
The following examples show how to use
com.handmark.pulltorefresh.library.PullToRefreshBase.State#OVERSCROLLING .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: OverscrollHelper.java From Social with Apache License 2.0 | 4 votes |
/** * Helper method for Overscrolling that encapsulates all of the necessary * function. This is the advanced version of the call. * * @param view - PullToRefreshView that is calling this. * @param deltaX - Change in X in pixels, passed through from from * overScrollBy call * @param scrollX - Current X scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param deltaY - Change in Y in pixels, passed through from from * overScrollBy call * @param scrollY - Current Y scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param scrollRange - Scroll Range of the View, specifically needed for * ScrollView * @param fuzzyThreshold - Threshold for which the values how fuzzy we * should treat the other values. Needed for WebView as it * doesn't always scroll back to it's edge. 0 = no fuzziness. * @param scaleFactor - Scale Factor for overscroll amount * @param isTouchEvent - true if this scroll operation is the result of a * touch event, passed through from from overScrollBy call */ public static void overScrollBy(final PullToRefreshBase<?> view, final int deltaX, final int scrollX, final int deltaY, final int scrollY, final int scrollRange, final int fuzzyThreshold, final float scaleFactor, final boolean isTouchEvent) { final int deltaValue, currentScrollValue, scrollValue; switch (view.getPullToRefreshScrollDirection()) { case HORIZONTAL: deltaValue = deltaX; scrollValue = scrollX; currentScrollValue = view.getScrollX(); break; case VERTICAL: default: deltaValue = deltaY; scrollValue = scrollY; currentScrollValue = view.getScrollY(); break; } // Check that OverScroll is enabled and that we're not currently // refreshing. if (view.isPullToRefreshOverScrollEnabled() && !view.isRefreshing()) { final Mode mode = view.getMode(); // Check that Pull-to-Refresh is enabled, and the event isn't from // touch if (mode.permitsPullToRefresh() && !isTouchEvent && deltaValue != 0) { final int newScrollValue = (deltaValue + scrollValue); if (PullToRefreshBase.DEBUG) { Log.d(LOG_TAG, "OverScroll. DeltaX: " + deltaX + ", ScrollX: " + scrollX + ", DeltaY: " + deltaY + ", ScrollY: " + scrollY + ", NewY: " + newScrollValue + ", ScrollRange: " + scrollRange + ", CurrentScroll: " + currentScrollValue); } if (newScrollValue < (0 - fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showHeaderLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue))); } } else if (newScrollValue > (scrollRange + fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showFooterLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue - scrollRange))); } } else if (Math.abs(newScrollValue) <= fuzzyThreshold || Math.abs(newScrollValue - scrollRange) <= fuzzyThreshold) { // Means we've stopped overscrolling, so scroll back to 0 view.setState(State.RESET); } } else if (isTouchEvent && State.OVERSCROLLING == view.getState()) { // This condition means that we were overscrolling from a fling, // but the user has touched the View and is now overscrolling // from touch instead. We need to just reset. view.setState(State.RESET); } } }
Example 2
Source File: OverscrollHelper.java From sctalk with Apache License 2.0 | 4 votes |
/** * Helper method for Overscrolling that encapsulates all of the necessary * function. This is the advanced version of the call. * * @param view - PullToRefreshView that is calling this. * @param deltaX - Change in X in pixels, passed through from from * overScrollBy call * @param scrollX - Current X scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param deltaY - Change in Y in pixels, passed through from from * overScrollBy call * @param scrollY - Current Y scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param scrollRange - Scroll Range of the View, specifically needed for * ScrollView * @param fuzzyThreshold - Threshold for which the values how fuzzy we * should treat the other values. Needed for WebView as it * doesn't always scroll back to it's edge. 0 = no fuzziness. * @param scaleFactor - Scale Factor for overscroll amount * @param isTouchEvent - true if this scroll operation is the result of a * touch event, passed through from from overScrollBy call */ public static void overScrollBy(final PullToRefreshBase<?> view, final int deltaX, final int scrollX, final int deltaY, final int scrollY, final int scrollRange, final int fuzzyThreshold, final float scaleFactor, final boolean isTouchEvent) { final int deltaValue, currentScrollValue, scrollValue; switch (view.getPullToRefreshScrollDirection()) { case HORIZONTAL: deltaValue = deltaX; scrollValue = scrollX; currentScrollValue = view.getScrollX(); break; case VERTICAL: default: deltaValue = deltaY; scrollValue = scrollY; currentScrollValue = view.getScrollY(); break; } // Check that OverScroll is enabled and that we're not currently // refreshing. if (view.isPullToRefreshOverScrollEnabled() && !view.isRefreshing()) { final Mode mode = view.getMode(); // Check that Pull-to-Refresh is enabled, and the event isn't from // touch if (mode.permitsPullToRefresh() && !isTouchEvent && deltaValue != 0) { final int newScrollValue = (deltaValue + scrollValue); if (PullToRefreshBase.DEBUG) { Log.d(LOG_TAG, "OverScroll. DeltaX: " + deltaX + ", ScrollX: " + scrollX + ", DeltaY: " + deltaY + ", ScrollY: " + scrollY + ", NewY: " + newScrollValue + ", ScrollRange: " + scrollRange + ", CurrentScroll: " + currentScrollValue); } if (newScrollValue < (0 - fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showHeaderLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue))); } } else if (newScrollValue > (scrollRange + fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showFooterLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue - scrollRange))); } } else if (Math.abs(newScrollValue) <= fuzzyThreshold || Math.abs(newScrollValue - scrollRange) <= fuzzyThreshold) { // Means we've stopped overscrolling, so scroll back to 0 view.setState(State.RESET); } } else if (isTouchEvent && State.OVERSCROLLING == view.getState()) { // This condition means that we were overscrolling from a fling, // but the user has touched the View and is now overscrolling // from touch instead. We need to just reset. view.setState(State.RESET); } } }
Example 3
Source File: OverscrollHelper.java From BigApp_Discuz_Android with Apache License 2.0 | 4 votes |
/** * Helper method for Overscrolling that encapsulates all of the necessary * function. This is the advanced version of the call. * * @param view - PullToRefreshView that is calling this. * @param deltaX - Change in X in pixels, passed through from from * overScrollBy call * @param scrollX - Current X scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param deltaY - Change in Y in pixels, passed through from from * overScrollBy call * @param scrollY - Current Y scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param scrollRange - Scroll Range of the View, specifically needed for * ScrollView * @param fuzzyThreshold - Threshold for which the values how fuzzy we * should treat the other values. Needed for WebView as it * doesn't always scroll back to it's edge. 0 = no fuzziness. * @param scaleFactor - Scale Factor for overscroll amount * @param isTouchEvent - true if this scroll operation is the result of a * touch event, passed through from from overScrollBy call */ public static void overScrollBy(final PullToRefreshBase<?> view, final int deltaX, final int scrollX, final int deltaY, final int scrollY, final int scrollRange, final int fuzzyThreshold, final float scaleFactor, final boolean isTouchEvent) { final int deltaValue, currentScrollValue, scrollValue; switch (view.getPullToRefreshScrollDirection()) { case HORIZONTAL: deltaValue = deltaX; scrollValue = scrollX; currentScrollValue = view.getScrollX(); break; case VERTICAL: default: deltaValue = deltaY; scrollValue = scrollY; currentScrollValue = view.getScrollY(); break; } // Check that OverScroll is enabled and that we're not currently // refreshing. if (view.isPullToRefreshOverScrollEnabled() && !view.isRefreshing()) { final Mode mode = view.getMode(); // Check that Pull-to-Refresh is enabled, and the event isn't from // touch if (mode.permitsPullToRefresh() && !isTouchEvent && deltaValue != 0) { final int newScrollValue = (deltaValue + scrollValue); if (PullToRefreshBase.DEBUG) { Log.d(LOG_TAG, "OverScroll. DeltaX: " + deltaX + ", ScrollX: " + scrollX + ", DeltaY: " + deltaY + ", ScrollY: " + scrollY + ", NewY: " + newScrollValue + ", ScrollRange: " + scrollRange + ", CurrentScroll: " + currentScrollValue); } if (newScrollValue < (0 - fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showHeaderLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue))); } } else if (newScrollValue > (scrollRange + fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showFooterLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue - scrollRange))); } } else if (Math.abs(newScrollValue) <= fuzzyThreshold || Math.abs(newScrollValue - scrollRange) <= fuzzyThreshold) { // Means we've stopped overscrolling, so scroll back to 0 view.setState(State.RESET); } } else if (isTouchEvent && State.OVERSCROLLING == view.getState()) { // This condition means that we were overscrolling from a fling, // but the user has touched the View and is now overscrolling // from touch instead. We need to just reset. view.setState(State.RESET); } } }
Example 4
Source File: OverscrollHelper.java From FanXin-based-HuanXin with GNU General Public License v2.0 | 4 votes |
/** * Helper method for Overscrolling that encapsulates all of the necessary * function. This is the advanced version of the call. * * @param view - PullToRefreshView that is calling this. * @param deltaX - Change in X in pixels, passed through from from * overScrollBy call * @param scrollX - Current X scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param deltaY - Change in Y in pixels, passed through from from * overScrollBy call * @param scrollY - Current Y scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param scrollRange - Scroll Range of the View, specifically needed for * ScrollView * @param fuzzyThreshold - Threshold for which the values how fuzzy we * should treat the other values. Needed for WebView as it * doesn't always scroll back to it's edge. 0 = no fuzziness. * @param scaleFactor - Scale Factor for overscroll amount * @param isTouchEvent - true if this scroll operation is the result of a * touch event, passed through from from overScrollBy call */ public static void overScrollBy(final PullToRefreshBase<?> view, final int deltaX, final int scrollX, final int deltaY, final int scrollY, final int scrollRange, final int fuzzyThreshold, final float scaleFactor, final boolean isTouchEvent) { final int deltaValue, currentScrollValue, scrollValue; switch (view.getPullToRefreshScrollDirection()) { case HORIZONTAL: deltaValue = deltaX; scrollValue = scrollX; currentScrollValue = view.getScrollX(); break; case VERTICAL: default: deltaValue = deltaY; scrollValue = scrollY; currentScrollValue = view.getScrollY(); break; } // Check that OverScroll is enabled and that we're not currently // refreshing. if (view.isPullToRefreshOverScrollEnabled() && !view.isRefreshing()) { final Mode mode = view.getMode(); // Check that Pull-to-Refresh is enabled, and the event isn't from // touch if (mode.permitsPullToRefresh() && !isTouchEvent && deltaValue != 0) { final int newScrollValue = (deltaValue + scrollValue); if (PullToRefreshBase.DEBUG) { Log.d(LOG_TAG, "OverScroll. DeltaX: " + deltaX + ", ScrollX: " + scrollX + ", DeltaY: " + deltaY + ", ScrollY: " + scrollY + ", NewY: " + newScrollValue + ", ScrollRange: " + scrollRange + ", CurrentScroll: " + currentScrollValue); } if (newScrollValue < (0 - fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showHeaderLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue))); } } else if (newScrollValue > (scrollRange + fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showFooterLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue - scrollRange))); } } else if (Math.abs(newScrollValue) <= fuzzyThreshold || Math.abs(newScrollValue - scrollRange) <= fuzzyThreshold) { // Means we've stopped overscrolling, so scroll back to 0 view.setState(State.RESET); } } else if (isTouchEvent && State.OVERSCROLLING == view.getState()) { // This condition means that we were overscrolling from a fling, // but the user has touched the View and is now overscrolling // from touch instead. We need to just reset. view.setState(State.RESET); } } }
Example 5
Source File: OverscrollHelper.java From LbaizxfPulltoRefresh with Apache License 2.0 | 4 votes |
/** * Helper method for Overscrolling that encapsulates all of the necessary * function. This is the advanced version of the call. * * @param view - PullToRefreshView that is calling this. * @param deltaX - Change in X in pixels, passed through from from * overScrollBy call * @param scrollX - Current X scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param deltaY - Change in Y in pixels, passed through from from * overScrollBy call * @param scrollY - Current Y scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param scrollRange - Scroll Range of the View, specifically needed for * ScrollView * @param fuzzyThreshold - Threshold for which the values how fuzzy we * should treat the other values. Needed for WebView as it * doesn't always scroll back to it's edge. 0 = no fuzziness. * @param scaleFactor - Scale Factor for overscroll amount * @param isTouchEvent - true if this scroll operation is the result of a * touch event, passed through from from overScrollBy call */ public static void overScrollBy(final PullToRefreshBase<?> view, final int deltaX, final int scrollX, final int deltaY, final int scrollY, final int scrollRange, final int fuzzyThreshold, final float scaleFactor, final boolean isTouchEvent) { final int deltaValue, currentScrollValue, scrollValue; switch (view.getPullToRefreshScrollDirection()) { case HORIZONTAL: deltaValue = deltaX; scrollValue = scrollX; currentScrollValue = view.getScrollX(); break; case VERTICAL: default: deltaValue = deltaY; scrollValue = scrollY; currentScrollValue = view.getScrollY(); break; } // Check that OverScroll is enabled and that we're not currently // refreshing. if (view.isPullToRefreshOverScrollEnabled() && !view.isRefreshing()) { final Mode mode = view.getMode(); // Check that Pull-to-Refresh is enabled, and the event isn't from // touch if (mode.permitsPullToRefresh() && !isTouchEvent && deltaValue != 0) { final int newScrollValue = (deltaValue + scrollValue); if (PullToRefreshBase.DEBUG) { Log.d(LOG_TAG, "OverScroll. DeltaX: " + deltaX + ", ScrollX: " + scrollX + ", DeltaY: " + deltaY + ", ScrollY: " + scrollY + ", NewY: " + newScrollValue + ", ScrollRange: " + scrollRange + ", CurrentScroll: " + currentScrollValue); } if (newScrollValue < (0 - fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showHeaderLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue))); } } else if (newScrollValue > (scrollRange + fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showFooterLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue - scrollRange))); } } else if (Math.abs(newScrollValue) <= fuzzyThreshold || Math.abs(newScrollValue - scrollRange) <= fuzzyThreshold) { // Means we've stopped overscrolling, so scroll back to 0 view.setState(State.RESET); } } else if (isTouchEvent && State.OVERSCROLLING == view.getState()) { // This condition means that we were overscrolling from a fling, // but the user has touched the View and is now overscrolling // from touch instead. We need to just reset. view.setState(State.RESET); } } }
Example 6
Source File: OverscrollHelper.java From GifAssistant with Apache License 2.0 | 4 votes |
/** * Helper method for Overscrolling that encapsulates all of the necessary * function. This is the advanced version of the call. * * @param view - PullToRefreshView that is calling this. * @param deltaX - Change in X in pixels, passed through from from * overScrollBy call * @param scrollX - Current X scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param deltaY - Change in Y in pixels, passed through from from * overScrollBy call * @param scrollY - Current Y scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param scrollRange - Scroll Range of the View, specifically needed for * ScrollView * @param fuzzyThreshold - Threshold for which the values how fuzzy we * should treat the other values. Needed for WebView as it * doesn't always scroll back to it's edge. 0 = no fuzziness. * @param scaleFactor - Scale Factor for overscroll amount * @param isTouchEvent - true if this scroll operation is the result of a * touch event, passed through from from overScrollBy call */ public static void overScrollBy(final PullToRefreshBase<?> view, final int deltaX, final int scrollX, final int deltaY, final int scrollY, final int scrollRange, final int fuzzyThreshold, final float scaleFactor, final boolean isTouchEvent) { final int deltaValue, currentScrollValue, scrollValue; switch (view.getPullToRefreshScrollDirection()) { case HORIZONTAL: deltaValue = deltaX; scrollValue = scrollX; currentScrollValue = view.getScrollX(); break; case VERTICAL: default: deltaValue = deltaY; scrollValue = scrollY; currentScrollValue = view.getScrollY(); break; } // Check that OverScroll is enabled and that we're not currently // refreshing. if (view.isPullToRefreshOverScrollEnabled() && !view.isRefreshing()) { final Mode mode = view.getMode(); // Check that Pull-to-Refresh is enabled, and the event isn't from // touch if (mode.permitsPullToRefresh() && !isTouchEvent && deltaValue != 0) { final int newScrollValue = (deltaValue + scrollValue); if (PullToRefreshBase.DEBUG) { Log.d(LOG_TAG, "OverScroll. DeltaX: " + deltaX + ", ScrollX: " + scrollX + ", DeltaY: " + deltaY + ", ScrollY: " + scrollY + ", NewY: " + newScrollValue + ", ScrollRange: " + scrollRange + ", CurrentScroll: " + currentScrollValue); } if (newScrollValue < (0 - fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showHeaderLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue))); } } else if (newScrollValue > (scrollRange + fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showFooterLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue - scrollRange))); } } else if (Math.abs(newScrollValue) <= fuzzyThreshold || Math.abs(newScrollValue - scrollRange) <= fuzzyThreshold) { // Means we've stopped overscrolling, so scroll back to 0 view.setState(State.RESET); } } else if (isTouchEvent && State.OVERSCROLLING == view.getState()) { // This condition means that we were overscrolling from a fling, // but the user has touched the View and is now overscrolling // from touch instead. We need to just reset. view.setState(State.RESET); } } }
Example 7
Source File: OverscrollHelper.java From PullToRefreshLibrary with Apache License 2.0 | 4 votes |
/** * Helper method for Overscrolling that encapsulates all of the necessary * function. This is the advanced version of the call. * * @param view - PullToRefreshView that is calling this. * @param deltaX - Change in X in pixels, passed through from from * overScrollBy call * @param scrollX - Current X scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param deltaY - Change in Y in pixels, passed through from from * overScrollBy call * @param scrollY - Current Y scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param scrollRange - Scroll Range of the View, specifically needed for * ScrollView * @param fuzzyThreshold - Threshold for which the values how fuzzy we * should treat the other values. Needed for WebView as it * doesn't always scroll back to it's edge. 0 = no fuzziness. * @param scaleFactor - Scale Factor for overscroll amount * @param isTouchEvent - true if this scroll operation is the result of a * touch event, passed through from from overScrollBy call */ public static void overScrollBy(final PullToRefreshBase<?> view, final int deltaX, final int scrollX, final int deltaY, final int scrollY, final int scrollRange, final int fuzzyThreshold, final float scaleFactor, final boolean isTouchEvent) { final int deltaValue, currentScrollValue, scrollValue; switch (view.getPullToRefreshScrollDirection()) { case HORIZONTAL: deltaValue = deltaX; scrollValue = scrollX; currentScrollValue = view.getScrollX(); break; case VERTICAL: default: deltaValue = deltaY; scrollValue = scrollY; currentScrollValue = view.getScrollY(); break; } // Check that OverScroll is enabled and that we're not currently // refreshing. if (view.isPullToRefreshOverScrollEnabled() && !view.isRefreshing()) { final Mode mode = view.getMode(); // Check that Pull-to-Refresh is enabled, and the event isn't from // touch if (mode.permitsPullToRefresh() && !isTouchEvent && deltaValue != 0) { final int newScrollValue = (deltaValue + scrollValue); if (PullToRefreshBase.DEBUG) { Log.d(LOG_TAG, "OverScroll. DeltaX: " + deltaX + ", ScrollX: " + scrollX + ", DeltaY: " + deltaY + ", ScrollY: " + scrollY + ", NewY: " + newScrollValue + ", ScrollRange: " + scrollRange + ", CurrentScroll: " + currentScrollValue); } if (newScrollValue < (0 - fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showHeaderLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue))); } } else if (newScrollValue > (scrollRange + fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showFooterLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue - scrollRange))); } } else if (Math.abs(newScrollValue) <= fuzzyThreshold || Math.abs(newScrollValue - scrollRange) <= fuzzyThreshold) { // Means we've stopped overscrolling, so scroll back to 0 view.setState(State.RESET); } } else if (isTouchEvent && State.OVERSCROLLING == view.getState()) { // This condition means that we were overscrolling from a fling, // but the user has touched the View and is now overscrolling // from touch instead. We need to just reset. view.setState(State.RESET); } } }
Example 8
Source File: OverscrollHelper.java From SweetMusicPlayer with Apache License 2.0 | 4 votes |
/** * Helper method for Overscrolling that encapsulates all of the necessary * function. This is the advanced version of the call. * * @param view - PullToRefreshView that is calling this. * @param deltaX - Change in X in pixels, passed through from from * overScrollBy call * @param scrollX - Current X scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param deltaY - Change in Y in pixels, passed through from from * overScrollBy call * @param scrollY - Current Y scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param scrollRange - Scroll Range of the View, specifically needed for * ScrollView * @param fuzzyThreshold - Threshold for which the values how fuzzy we * should treat the other values. Needed for WebView as it * doesn't always scroll back to it's edge. 0 = no fuzziness. * @param scaleFactor - Scale Factor for overscroll amount * @param isTouchEvent - true if this scroll operation is the result of a * touch event, passed through from from overScrollBy call */ public static void overScrollBy(final PullToRefreshBase<?> view, final int deltaX, final int scrollX, final int deltaY, final int scrollY, final int scrollRange, final int fuzzyThreshold, final float scaleFactor, final boolean isTouchEvent) { final int deltaValue, currentScrollValue, scrollValue; switch (view.getPullToRefreshScrollDirection()) { case HORIZONTAL: deltaValue = deltaX; scrollValue = scrollX; currentScrollValue = view.getScrollX(); break; case VERTICAL: default: deltaValue = deltaY; scrollValue = scrollY; currentScrollValue = view.getScrollY(); break; } // Check that OverScroll is enabled and that we're not currently // refreshing. if (view.isPullToRefreshOverScrollEnabled() && !view.isRefreshing()) { final Mode mode = view.getMode(); // Check that Pull-to-Refresh is enabled, and the event isn't from // touch if (mode.permitsPullToRefresh() && !isTouchEvent && deltaValue != 0) { final int newScrollValue = (deltaValue + scrollValue); if (PullToRefreshBase.DEBUG) { Log.d(LOG_TAG, "OverScroll. DeltaX: " + deltaX + ", ScrollX: " + scrollX + ", DeltaY: " + deltaY + ", ScrollY: " + scrollY + ", NewY: " + newScrollValue + ", ScrollRange: " + scrollRange + ", CurrentScroll: " + currentScrollValue); } if (newScrollValue < (0 - fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showHeaderLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue))); } } else if (newScrollValue > (scrollRange + fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showFooterLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue - scrollRange))); } } else if (Math.abs(newScrollValue) <= fuzzyThreshold || Math.abs(newScrollValue - scrollRange) <= fuzzyThreshold) { // Means we've stopped overscrolling, so scroll back to 0 view.setState(State.RESET); } } else if (isTouchEvent && State.OVERSCROLLING == view.getState()) { // This condition means that we were overscrolling from a fling, // but the user has touched the View and is now overscrolling // from touch instead. We need to just reset. view.setState(State.RESET); } } }
Example 9
Source File: OverscrollHelper.java From ONE-Unofficial with Apache License 2.0 | 4 votes |
/** * Helper method for Overscrolling that encapsulates all of the necessary * function. This is the advanced version of the call. * * @param view - PullToRefreshView that is calling this. * @param deltaX - Change in X in pixels, passed through from from * overScrollBy call * @param scrollX - Current X scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param deltaY - Change in Y in pixels, passed through from from * overScrollBy call * @param scrollY - Current Y scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param scrollRange - Scroll Range of the View, specifically needed for * ScrollView * @param fuzzyThreshold - Threshold for which the values how fuzzy we * should treat the other values. Needed for WebView as it * doesn't always scroll back to it's edge. 0 = no fuzziness. * @param scaleFactor - Scale Factor for overscroll amount * @param isTouchEvent - true if this scroll operation is the result of a * touch event, passed through from from overScrollBy call */ public static void overScrollBy(final PullToRefreshBase<?> view, final int deltaX, final int scrollX, final int deltaY, final int scrollY, final int scrollRange, final int fuzzyThreshold, final float scaleFactor, final boolean isTouchEvent) { final int deltaValue, currentScrollValue, scrollValue; switch (view.getPullToRefreshScrollDirection()) { case HORIZONTAL: deltaValue = deltaX; scrollValue = scrollX; currentScrollValue = view.getScrollX(); break; case VERTICAL: default: deltaValue = deltaY; scrollValue = scrollY; currentScrollValue = view.getScrollY(); break; } // Check that OverScroll is enabled and that we're not currently // refreshing. if (view.isPullToRefreshOverScrollEnabled() && !view.isRefreshing()) { final Mode mode = view.getMode(); // Check that Pull-to-Refresh is enabled, and the event isn't from // touch if (mode.permitsPullToRefresh() && !isTouchEvent && deltaValue != 0) { final int newScrollValue = (deltaValue + scrollValue); if (PullToRefreshBase.DEBUG) { Log.d(LOG_TAG, "OverScroll. DeltaX: " + deltaX + ", ScrollX: " + scrollX + ", DeltaY: " + deltaY + ", ScrollY: " + scrollY + ", NewY: " + newScrollValue + ", ScrollRange: " + scrollRange + ", CurrentScroll: " + currentScrollValue); } if (newScrollValue < (0 - fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showHeaderLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue))); } } else if (newScrollValue > (scrollRange + fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showFooterLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue - scrollRange))); } } else if (Math.abs(newScrollValue) <= fuzzyThreshold || Math.abs(newScrollValue - scrollRange) <= fuzzyThreshold) { // Means we've stopped overscrolling, so scroll back to 0 view.setState(State.RESET); } } else if (isTouchEvent && State.OVERSCROLLING == view.getState()) { // This condition means that we were overscrolling from a fling, // but the user has touched the View and is now overscrolling // from touch instead. We need to just reset. view.setState(State.RESET); } } }
Example 10
Source File: OverscrollHelper.java From bmob-android-demo-paging with GNU General Public License v3.0 | 4 votes |
/** * Helper method for Overscrolling that encapsulates all of the necessary * function. This is the advanced version of the call. * * @param view - PullToRefreshView that is calling this. * @param deltaX - Change in X in pixels, passed through from from * overScrollBy call * @param scrollX - Current X scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param deltaY - Change in Y in pixels, passed through from from * overScrollBy call * @param scrollY - Current Y scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param scrollRange - Scroll Range of the View, specifically needed for * ScrollView * @param fuzzyThreshold - Threshold for which the values how fuzzy we * should treat the other values. Needed for WebView as it * doesn't always scroll back to it's edge. 0 = no fuzziness. * @param scaleFactor - Scale Factor for overscroll amount * @param isTouchEvent - true if this scroll operation is the result of a * touch event, passed through from from overScrollBy call */ public static void overScrollBy(final PullToRefreshBase<?> view, final int deltaX, final int scrollX, final int deltaY, final int scrollY, final int scrollRange, final int fuzzyThreshold, final float scaleFactor, final boolean isTouchEvent) { final int deltaValue, currentScrollValue, scrollValue; switch (view.getPullToRefreshScrollDirection()) { case HORIZONTAL: deltaValue = deltaX; scrollValue = scrollX; currentScrollValue = view.getScrollX(); break; case VERTICAL: default: deltaValue = deltaY; scrollValue = scrollY; currentScrollValue = view.getScrollY(); break; } // Check that OverScroll is enabled and that we're not currently // refreshing. if (view.isPullToRefreshOverScrollEnabled() && !view.isRefreshing()) { final Mode mode = view.getMode(); // Check that Pull-to-Refresh is enabled, and the event isn't from // touch if (mode.permitsPullToRefresh() && !isTouchEvent && deltaValue != 0) { final int newScrollValue = (deltaValue + scrollValue); if (PullToRefreshBase.DEBUG) { Log.d(LOG_TAG, "OverScroll. DeltaX: " + deltaX + ", ScrollX: " + scrollX + ", DeltaY: " + deltaY + ", ScrollY: " + scrollY + ", NewY: " + newScrollValue + ", ScrollRange: " + scrollRange + ", CurrentScroll: " + currentScrollValue); } if (newScrollValue < (0 - fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showHeaderLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue))); } } else if (newScrollValue > (scrollRange + fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showFooterLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue - scrollRange))); } } else if (Math.abs(newScrollValue) <= fuzzyThreshold || Math.abs(newScrollValue - scrollRange) <= fuzzyThreshold) { // Means we've stopped overscrolling, so scroll back to 0 view.setState(State.RESET); } } else if (isTouchEvent && State.OVERSCROLLING == view.getState()) { // This condition means that we were overscrolling from a fling, // but the user has touched the View and is now overscrolling // from touch instead. We need to just reset. view.setState(State.RESET); } } }
Example 11
Source File: OverscrollHelper.java From iSCAU-Android with GNU General Public License v3.0 | 4 votes |
/** * Helper method for Overscrolling that encapsulates all of the necessary * function. This is the advanced version of the call. * * @param view - PullToRefreshView that is calling this. * @param deltaX - Change in X in pixels, passed through from from * overScrollBy call * @param scrollX - Current X scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param deltaY - Change in Y in pixels, passed through from from * overScrollBy call * @param scrollY - Current Y scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param scrollRange - Scroll Range of the View, specifically needed for * ScrollView * @param fuzzyThreshold - Threshold for which the values how fuzzy we * should treat the other values. Needed for WebView as it * doesn't always scroll back to it's edge. 0 = no fuzziness. * @param scaleFactor - Scale Factor for overscroll amount * @param isTouchEvent - true if this scroll operation is the result of a * touch event, passed through from from overScrollBy call */ public static void overScrollBy(final PullToRefreshBase<?> view, final int deltaX, final int scrollX, final int deltaY, final int scrollY, final int scrollRange, final int fuzzyThreshold, final float scaleFactor, final boolean isTouchEvent) { final int deltaValue, currentScrollValue, scrollValue; switch (view.getPullToRefreshScrollDirection()) { case HORIZONTAL: deltaValue = deltaX; scrollValue = scrollX; currentScrollValue = view.getScrollX(); break; case VERTICAL: default: deltaValue = deltaY; scrollValue = scrollY; currentScrollValue = view.getScrollY(); break; } // Check that OverScroll is enabled and that we're not currently // refreshing. if (view.isPullToRefreshOverScrollEnabled() && !view.isRefreshing()) { final Mode mode = view.getMode(); // Check that Pull-to-Refresh is enabled, and the event isn't from // touch if (mode.permitsPullToRefresh() && !isTouchEvent && deltaValue != 0) { final int newScrollValue = (deltaValue + scrollValue); if (PullToRefreshBase.DEBUG) { Log.d(LOG_TAG, "OverScroll. DeltaX: " + deltaX + ", ScrollX: " + scrollX + ", DeltaY: " + deltaY + ", ScrollY: " + scrollY + ", NewY: " + newScrollValue + ", ScrollRange: " + scrollRange + ", CurrentScroll: " + currentScrollValue); } if (newScrollValue < (0 - fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showHeaderLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue))); } } else if (newScrollValue > (scrollRange + fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showFooterLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue - scrollRange))); } } else if (Math.abs(newScrollValue) <= fuzzyThreshold || Math.abs(newScrollValue - scrollRange) <= fuzzyThreshold) { // Means we've stopped overscrolling, so scroll back to 0 view.setState(State.RESET); } } else if (isTouchEvent && State.OVERSCROLLING == view.getState()) { // This condition means that we were overscrolling from a fling, // but the user has touched the View and is now overscrolling // from touch instead. We need to just reset. view.setState(State.RESET); } } }
Example 12
Source File: OverscrollHelper.java From PullToRefresh-PinnedSection-ListView with MIT License | 4 votes |
/** * Helper method for Overscrolling that encapsulates all of the necessary * function. This is the advanced version of the call. * * @param view - PullToRefreshView that is calling this. * @param deltaX - Change in X in pixels, passed through from from * overScrollBy call * @param scrollX - Current X scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param deltaY - Change in Y in pixels, passed through from from * overScrollBy call * @param scrollY - Current Y scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param scrollRange - Scroll Range of the View, specifically needed for * ScrollView * @param fuzzyThreshold - Threshold for which the values how fuzzy we * should treat the other values. Needed for WebView as it * doesn't always scroll back to it's edge. 0 = no fuzziness. * @param scaleFactor - Scale Factor for overscroll amount * @param isTouchEvent - true if this scroll operation is the result of a * touch event, passed through from from overScrollBy call */ public static void overScrollBy(final PullToRefreshBase<?> view, final int deltaX, final int scrollX, final int deltaY, final int scrollY, final int scrollRange, final int fuzzyThreshold, final float scaleFactor, final boolean isTouchEvent) { final int deltaValue, currentScrollValue, scrollValue; switch (view.getPullToRefreshScrollDirection()) { case HORIZONTAL: deltaValue = deltaX; scrollValue = scrollX; currentScrollValue = view.getScrollX(); break; case VERTICAL: default: deltaValue = deltaY; scrollValue = scrollY; currentScrollValue = view.getScrollY(); break; } // Check that OverScroll is enabled and that we're not currently // refreshing. if (view.isPullToRefreshOverScrollEnabled() && !view.isRefreshing()) { final Mode mode = view.getMode(); // Check that Pull-to-Refresh is enabled, and the event isn't from // touch if (mode.permitsPullToRefresh() && !isTouchEvent && deltaValue != 0) { final int newScrollValue = (deltaValue + scrollValue); if (PullToRefreshBase.DEBUG) { Log.d(LOG_TAG, "OverScroll. DeltaX: " + deltaX + ", ScrollX: " + scrollX + ", DeltaY: " + deltaY + ", ScrollY: " + scrollY + ", NewY: " + newScrollValue + ", ScrollRange: " + scrollRange + ", CurrentScroll: " + currentScrollValue); } if (newScrollValue < (0 - fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showHeaderLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue))); } } else if (newScrollValue > (scrollRange + fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showFooterLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue - scrollRange))); } } else if (Math.abs(newScrollValue) <= fuzzyThreshold || Math.abs(newScrollValue - scrollRange) <= fuzzyThreshold) { // Means we've stopped overscrolling, so scroll back to 0 view.setState(State.RESET); } } else if (isTouchEvent && State.OVERSCROLLING == view.getState()) { // This condition means that we were overscrolling from a fling, // but the user has touched the View and is now overscrolling // from touch instead. We need to just reset. view.setState(State.RESET); } } }
Example 13
Source File: OverscrollHelper.java From handmarkPulltorefreshLibrary with Apache License 2.0 | 4 votes |
/** * Helper method for Overscrolling that encapsulates all of the necessary * function. This is the advanced version of the call. * * @param view - PullToRefreshView that is calling this. * @param deltaX - Change in X in pixels, passed through from from * overScrollBy call * @param scrollX - Current X scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param deltaY - Change in Y in pixels, passed through from from * overScrollBy call * @param scrollY - Current Y scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param scrollRange - Scroll Range of the View, specifically needed for * ScrollView * @param fuzzyThreshold - Threshold for which the values how fuzzy we * should treat the other values. Needed for WebView as it * doesn't always scroll back to it's edge. 0 = no fuzziness. * @param scaleFactor - Scale Factor for overscroll amount * @param isTouchEvent - true if this scroll operation is the result of a * touch event, passed through from from overScrollBy call */ public static void overScrollBy(final PullToRefreshBase<?> view, final int deltaX, final int scrollX, final int deltaY, final int scrollY, final int scrollRange, final int fuzzyThreshold, final float scaleFactor, final boolean isTouchEvent) { final int deltaValue, currentScrollValue, scrollValue; switch (view.getPullToRefreshScrollDirection()) { case HORIZONTAL: deltaValue = deltaX; scrollValue = scrollX; currentScrollValue = view.getScrollX(); break; case VERTICAL: default: deltaValue = deltaY; scrollValue = scrollY; currentScrollValue = view.getScrollY(); break; } // Check that OverScroll is enabled and that we're not currently // refreshing. if (view.isPullToRefreshOverScrollEnabled() && !view.isRefreshing()) { final Mode mode = view.getMode(); // Check that Pull-to-Refresh is enabled, and the event isn't from // touch if (mode.permitsPullToRefresh() && !isTouchEvent && deltaValue != 0) { final int newScrollValue = (deltaValue + scrollValue); if (PullToRefreshBase.DEBUG) { Log.d(LOG_TAG, "OverScroll. DeltaX: " + deltaX + ", ScrollX: " + scrollX + ", DeltaY: " + deltaY + ", ScrollY: " + scrollY + ", NewY: " + newScrollValue + ", ScrollRange: " + scrollRange + ", CurrentScroll: " + currentScrollValue); } if (newScrollValue < (0 - fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showHeaderLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue))); } } else if (newScrollValue > (scrollRange + fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showFooterLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue - scrollRange))); } } else if (Math.abs(newScrollValue) <= fuzzyThreshold || Math.abs(newScrollValue - scrollRange) <= fuzzyThreshold) { // Means we've stopped overscrolling, so scroll back to 0 view.setState(State.RESET); } } else if (isTouchEvent && State.OVERSCROLLING == view.getState()) { // This condition means that we were overscrolling from a fling, // but the user has touched the View and is now overscrolling // from touch instead. We need to just reset. view.setState(State.RESET); } } }
Example 14
Source File: OverscrollHelper.java From zen4android with MIT License | 4 votes |
/** * Helper method for Overscrolling that encapsulates all of the necessary * function. This is the advanced version of the call. * * @param view - PullToRefreshView that is calling this. * @param deltaX - Change in X in pixels, passed through from from * overScrollBy call * @param scrollX - Current X scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param deltaY - Change in Y in pixels, passed through from from * overScrollBy call * @param scrollY - Current Y scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param scrollRange - Scroll Range of the View, specifically needed for * ScrollView * @param fuzzyThreshold - Threshold for which the values how fuzzy we * should treat the other values. Needed for WebView as it * doesn't always scroll back to it's edge. 0 = no fuzziness. * @param scaleFactor - Scale Factor for overscroll amount * @param isTouchEvent - true if this scroll operation is the result of a * touch event, passed through from from overScrollBy call */ public static void overScrollBy(final PullToRefreshBase<?> view, final int deltaX, final int scrollX, final int deltaY, final int scrollY, final int scrollRange, final int fuzzyThreshold, final float scaleFactor, final boolean isTouchEvent) { final int deltaValue, currentScrollValue, scrollValue; switch (view.getPullToRefreshScrollDirection()) { case HORIZONTAL: deltaValue = deltaX; scrollValue = scrollX; currentScrollValue = view.getScrollX(); break; case VERTICAL: default: deltaValue = deltaY; scrollValue = scrollY; currentScrollValue = view.getScrollY(); break; } // Check that OverScroll is enabled and that we're not currently // refreshing. if (view.isPullToRefreshOverScrollEnabled() && !view.isRefreshing()) { final Mode mode = view.getMode(); // Check that Pull-to-Refresh is enabled, and the event isn't from // touch if (mode.permitsPullToRefresh() && !isTouchEvent && deltaValue != 0) { final int newScrollValue = (deltaValue + scrollValue); if (PullToRefreshBase.DEBUG) { Log.d(LOG_TAG, "OverScroll. DeltaX: " + deltaX + ", ScrollX: " + scrollX + ", DeltaY: " + deltaY + ", ScrollY: " + scrollY + ", NewY: " + newScrollValue + ", ScrollRange: " + scrollRange + ", CurrentScroll: " + currentScrollValue); } if (newScrollValue < (0 - fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showHeaderLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue))); } } else if (newScrollValue > (scrollRange + fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showFooterLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue - scrollRange))); } } else if (Math.abs(newScrollValue) <= fuzzyThreshold || Math.abs(newScrollValue - scrollRange) <= fuzzyThreshold) { // Means we've stopped overscrolling, so scroll back to 0 view.setState(State.RESET); } } else if (isTouchEvent && State.OVERSCROLLING == view.getState()) { // This condition means that we were overscrolling from a fling, // but the user has touched the View and is now overscrolling // from touch instead. We need to just reset. view.setState(State.RESET); } } }
Example 15
Source File: OverscrollHelper.java From effective_android_sample with Apache License 2.0 | 4 votes |
/** * Helper method for Overscrolling that encapsulates all of the necessary * function. This is the advanced version of the call. * * @param view - PullToRefreshView that is calling this. * @param deltaX - Change in X in pixels, passed through from from * overScrollBy call * @param scrollX - Current X scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param deltaY - Change in Y in pixels, passed through from from * overScrollBy call * @param scrollY - Current Y scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param scrollRange - Scroll Range of the View, specifically needed for * ScrollView * @param fuzzyThreshold - Threshold for which the values how fuzzy we * should treat the other values. Needed for WebView as it * doesn't always scroll back to it's edge. 0 = no fuzziness. * @param scaleFactor - Scale Factor for overscroll amount * @param isTouchEvent - true if this scroll operation is the result of a * touch event, passed through from from overScrollBy call */ public static void overScrollBy(final PullToRefreshBase<?> view, final int deltaX, final int scrollX, final int deltaY, final int scrollY, final int scrollRange, final int fuzzyThreshold, final float scaleFactor, final boolean isTouchEvent) { final int deltaValue, currentScrollValue, scrollValue; switch (view.getPullToRefreshScrollDirection()) { case HORIZONTAL: deltaValue = deltaX; scrollValue = scrollX; currentScrollValue = view.getScrollX(); break; case VERTICAL: default: deltaValue = deltaY; scrollValue = scrollY; currentScrollValue = view.getScrollY(); break; } // Check that OverScroll is enabled and that we're not currently // refreshing. if (view.isPullToRefreshOverScrollEnabled() && !view.isRefreshing()) { final Mode mode = view.getMode(); // Check that Pull-to-Refresh is enabled, and the event isn't from // touch if (mode.permitsPullToRefresh() && !isTouchEvent && deltaValue != 0) { final int newScrollValue = (deltaValue + scrollValue); if (PullToRefreshBase.DEBUG) { Log.d(LOG_TAG, "OverScroll. DeltaX: " + deltaX + ", ScrollX: " + scrollX + ", DeltaY: " + deltaY + ", ScrollY: " + scrollY + ", NewY: " + newScrollValue + ", ScrollRange: " + scrollRange + ", CurrentScroll: " + currentScrollValue); } if (newScrollValue < (0 - fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showHeaderLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue))); } } else if (newScrollValue > (scrollRange + fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showFooterLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue - scrollRange))); } } else if (Math.abs(newScrollValue) <= fuzzyThreshold || Math.abs(newScrollValue - scrollRange) <= fuzzyThreshold) { // Means we've stopped overscrolling, so scroll back to 0 view.setState(State.RESET); } } else if (isTouchEvent && State.OVERSCROLLING == view.getState()) { // This condition means that we were overscrolling from a fling, // but the user has touched the View and is now overscrolling // from touch instead. We need to just reset. view.setState(State.RESET); } } }
Example 16
Source File: OverscrollHelper.java From FacebookNewsfeedSample-Android with Apache License 2.0 | 4 votes |
/** * Helper method for Overscrolling that encapsulates all of the necessary * function. This is the advanced version of the call. * * @param view - PullToRefreshView that is calling this. * @param deltaX - Change in X in pixels, passed through from from * overScrollBy call * @param scrollX - Current X scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param deltaY - Change in Y in pixels, passed through from from * overScrollBy call * @param scrollY - Current Y scroll value in pixels before applying deltaY, * passed through from from overScrollBy call * @param scrollRange - Scroll Range of the View, specifically needed for * ScrollView * @param fuzzyThreshold - Threshold for which the values how fuzzy we * should treat the other values. Needed for WebView as it * doesn't always scroll back to it's edge. 0 = no fuzziness. * @param scaleFactor - Scale Factor for overscroll amount * @param isTouchEvent - true if this scroll operation is the result of a * touch event, passed through from from overScrollBy call */ public static void overScrollBy(final PullToRefreshBase<?> view, final int deltaX, final int scrollX, final int deltaY, final int scrollY, final int scrollRange, final int fuzzyThreshold, final float scaleFactor, final boolean isTouchEvent) { final int deltaValue, currentScrollValue, scrollValue; switch (view.getPullToRefreshScrollDirection()) { case HORIZONTAL: deltaValue = deltaX; scrollValue = scrollX; currentScrollValue = view.getScrollX(); break; case VERTICAL: default: deltaValue = deltaY; scrollValue = scrollY; currentScrollValue = view.getScrollY(); break; } // Check that OverScroll is enabled and that we're not currently // refreshing. if (view.isPullToRefreshOverScrollEnabled() && !view.isRefreshing()) { final Mode mode = view.getMode(); // Check that Pull-to-Refresh is enabled, and the event isn't from // touch if (mode.permitsPullToRefresh() && !isTouchEvent && deltaValue != 0) { final int newScrollValue = (deltaValue + scrollValue); if (PullToRefreshBase.DEBUG) { Log.d(LOG_TAG, "OverScroll. DeltaX: " + deltaX + ", ScrollX: " + scrollX + ", DeltaY: " + deltaY + ", ScrollY: " + scrollY + ", NewY: " + newScrollValue + ", ScrollRange: " + scrollRange + ", CurrentScroll: " + currentScrollValue); } if (newScrollValue < (0 - fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showHeaderLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue))); } } else if (newScrollValue > (scrollRange + fuzzyThreshold)) { // Check the mode supports the overscroll direction, and // then move scroll if (mode.showFooterLoadingLayout()) { // If we're currently at zero, we're about to start // overscrolling, so change the state if (currentScrollValue == 0) { view.setState(State.OVERSCROLLING); } view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue - scrollRange))); } } else if (Math.abs(newScrollValue) <= fuzzyThreshold || Math.abs(newScrollValue - scrollRange) <= fuzzyThreshold) { // Means we've stopped overscrolling, so scroll back to 0 view.setState(State.RESET); } } else if (isTouchEvent && State.OVERSCROLLING == view.getState()) { // This condition means that we were overscrolling from a fling, // but the user has touched the View and is now overscrolling // from touch instead. We need to just reset. view.setState(State.RESET); } } }