Here are the examples of the java api class android.widget.AbsListView.OnScrollListener taken from open source projects.
1. ViewRecorderSDK#handleOnScrollListener()
Project: Cafe
File: ViewRecorderSDK.java
File: ViewRecorderSDK.java
private void handleOnScrollListener(AbsListView absListView) { OnScrollListener onScrollListener = (OnScrollListener) getListener(absListView, "mOnScrollListener"); // has hooked listener if (onScrollListener != null && mAllListenerHashcodes.contains(onScrollListener.hashCode())) { return; } mAbsListViewStates.put(getViewID(absListView), new AbsListViewState()); if (null != onScrollListener) { hookOnScrollListener(absListView, onScrollListener); } else { printLog("set onScrollListener [" + absListView + "]"); OnScrollListener onScrollListenerHooked = new OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { setOnScrollStateChanged(view, scrollState); } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { setOnScroll(view, firstVisibleItem, visibleItemCount, totalItemCount); } }; setListener(absListView, "mOnScrollListener", onScrollListenerHooked); } // save hashcode of hooked listener OnScrollListener onScrollListenerHooked = (OnScrollListener) getListener(absListView, "mOnScrollListener"); if (onScrollListenerHooked != null) { mAllListenerHashcodes.add(onScrollListenerHooked.hashCode()); } }
2. ViewRecorder#handleOnScrollListener()
Project: Cafe
File: ViewRecorder.java
File: ViewRecorder.java
private void handleOnScrollListener(AbsListView absListView) { OnScrollListener onScrollListener = (OnScrollListener) getListener(absListView, "mOnScrollListener"); // has hooked listener if (onScrollListener != null && mAllListenerHashcodes.contains(onScrollListener.hashCode())) { return; } mAbsListViewStates.put(getViewID(absListView), new AbsListViewState()); if (null != onScrollListener) { hookOnScrollListener(absListView, onScrollListener); } else { printLog("set onScrollListener [" + absListView + "]"); OnScrollListener onScrollListenerHooked = new OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { setOnScrollStateChanged(view, scrollState); } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { setOnScroll(view, firstVisibleItem, visibleItemCount, totalItemCount); } }; setListener(absListView, "mOnScrollListener", onScrollListenerHooked); } // save hashcode of hooked listener OnScrollListener onScrollListenerHooked = (OnScrollListener) getListener(absListView, "mOnScrollListener"); if (onScrollListenerHooked != null) { mAllListenerHashcodes.add(onScrollListenerHooked.hashCode()); } }
3. ViewRecorderSDK#hookOnScrollListener()
Project: Cafe
File: ViewRecorderSDK.java
File: ViewRecorderSDK.java
private void hookOnScrollListener(final AbsListView absListView, final OnScrollListener onScrollListener) { printLog("hook onScrollListener [" + absListView + "] [" + onScrollListener.hashCode() + "]"); // save old listener mOnScrollListeners.put(getViewID(absListView), onScrollListener); // mOnScrollListeners.put(String.valueOf(absListView.hashCode()), // onScrollListener); // set hook listener final OnScrollListener onScrollListenernew = new OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { setOnScrollStateChanged(view, scrollState); OnScrollListener onScrollListener = mOnScrollListeners.get(getViewID(view)); OnScrollListener onScrollListenerHooked = (OnScrollListener) getListener(view, "mOnScrollListener"); if (onScrollListener != null) { // TODO It's a bug. It can not be fix by below. if (onScrollListener.equals(onScrollListenerHooked)) { printLog("onScrollListenerHooked == onScrollListener!!!"); return; } onScrollListener.onScrollStateChanged(view, scrollState); } else { printLog("onScrollListener == null "); } } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { setOnScroll(view, firstVisibleItem, visibleItemCount, totalItemCount); OnScrollListener onScrollListener = mOnScrollListeners.get(String.valueOf(view.hashCode())); OnScrollListener onScrollListenerHooked = (OnScrollListener) getListener(view, "mOnScrollListener"); if (onScrollListener != null) { // TODO It's a bug. It can not be fix by below. if (onScrollListener.equals(onScrollListenerHooked)) { printLog("onScrollListenerHooked == onScrollListener!!!"); return; } onScrollListener.onScroll(view, firstVisibleItem, visibleItemCount, totalItemCount); } else { printLog("onScrollListener == null "); } } }; absListView.post(new Runnable() { public void run() { absListView.setOnScrollListener(onScrollListenernew); } }); }
4. ViewRecorder#hookOnScrollListener()
Project: Cafe
File: ViewRecorder.java
File: ViewRecorder.java
private void hookOnScrollListener(final AbsListView absListView, final OnScrollListener onScrollListener) { printLog("hook onScrollListener [" + absListView + "]"); // save old listener mOnScrollListeners.put(getViewID(absListView), onScrollListener); // mOnScrollListeners.put(String.valueOf(absListView.hashCode()), onScrollListener); // set hook listener final OnScrollListener onScrollListenernew = new OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { setOnScrollStateChanged(view, scrollState); OnScrollListener onScrollListener = mOnScrollListeners.get(getViewID(view)); OnScrollListener onScrollListenerHooked = (OnScrollListener) getListener(view, "mOnScrollListener"); if (onScrollListener != null) { // TODO It's a bug. It can not be fix by below. if (onScrollListener.equals(onScrollListenerHooked)) { printLog("onScrollListenerHooked == onScrollListener!!!"); return; } onScrollListener.onScrollStateChanged(view, scrollState); } else { printLog("onScrollListener == null " + Log.getThreadInfo()); } } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { setOnScroll(view, firstVisibleItem, visibleItemCount, totalItemCount); OnScrollListener onScrollListener = mOnScrollListeners.get(String.valueOf(view.hashCode())); OnScrollListener onScrollListenerHooked = (OnScrollListener) getListener(view, "mOnScrollListener"); if (onScrollListener != null) { // TODO It's a bug. It can not be fix by below. if (onScrollListener.equals(onScrollListenerHooked)) { printLog("onScrollListenerHooked == onScrollListener!!!"); return; } onScrollListener.onScroll(view, firstVisibleItem, visibleItemCount, totalItemCount); } else { printLog("onScrollListener == null " + Log.getThreadInfo()); } } }; local.runOnMainSync(new Runnable() { @Override public void run() { absListView.setOnScrollListener(onScrollListenernew); } }); }
5. ScrollAnimatorTest#shouldNotifyAdditionalScrollListenerOnScrollStateChanged()
Project: ButtonMenu
File: ScrollAnimatorTest.java
File: ScrollAnimatorTest.java
@Test public void shouldNotifyAdditionalScrollListenerOnScrollStateChanged() { OnScrollListener mockedScrollListener = mock(OnScrollListener.class); scrollAnimator.setAdditionalScrollListener(mockedScrollListener); scrollAnimator.configureListView(listView); doAnyScrollAction(); verify(mockedScrollListener).onScrollStateChanged(listView, ANY_SCROLL_ACTION); }
6. ScrollAnimatorTest#shouldNotifyAdditionalScrollListenerOnScroll()
Project: ButtonMenu
File: ScrollAnimatorTest.java
File: ScrollAnimatorTest.java
@Test public void shouldNotifyAdditionalScrollListenerOnScroll() { OnScrollListener mockedScrollListener = mock(OnScrollListener.class); scrollAnimator.setAdditionalScrollListener(mockedScrollListener); scrollAnimator.configureListView(listView); scrollToAnyPosition(ANY_FIRST_VISIBLE_ITEM, ANY_VISIBLE_ITEM_COUNT, TOTAL_ITEM_COUNT); verify(mockedScrollListener).onScroll(listView, ANY_FIRST_VISIBLE_ITEM, ANY_VISIBLE_ITEM_COUNT, TOTAL_ITEM_COUNT); }
7. Common#shouldDelay()
Project: BeeFramework_Android
File: Common.java
File: Common.java
public static boolean shouldDelay(int groupPosition, int childPosition, View convertView, ViewGroup parent, String url) { if (url == null || BitmapAjaxCallback.isMemoryCached(url)) { return false; } AbsListView lv = (AbsListView) parent; OnScrollListener sl = (OnScrollListener) parent.getTag(AQuery.TAG_SCROLL_LISTENER); if (sl == null) { sl = new Common(); lv.setOnScrollListener(sl); parent.setTag(AQuery.TAG_SCROLL_LISTENER, sl); } Integer scrollState = (Integer) lv.getTag(AQuery.TAG_NUM); if (scrollState == null || scrollState == OnScrollListener.SCROLL_STATE_IDLE || scrollState == OnScrollListener.SCROLL_STATE_TOUCH_SCROLL) { return false; } long packed = childPosition; if (parent instanceof ExpandableListView) { packed = ExpandableListView.getPackedPositionForChild(groupPosition, childPosition); } convertView.setTag(AQuery.TAG_NUM, packed); return true; }