Example usage for android.support.v4.widget ListViewAutoScrollHelper ListViewAutoScrollHelper

List of usage examples for android.support.v4.widget ListViewAutoScrollHelper ListViewAutoScrollHelper

Introduction

In this page you can find the example usage for android.support.v4.widget ListViewAutoScrollHelper ListViewAutoScrollHelper.

Prototype

public ListViewAutoScrollHelper(ListView listView) 

Source Link

Usage

From source file:android.support.v7.widget.DropDownListView.java

/**
 * Handles forwarded events.//  w  w w  . j ava  2 s . co m
 *
 * @param activePointerId id of the pointer that activated forwarding
 * @return whether the event was handled
 */
public boolean onForwardedEvent(MotionEvent event, int activePointerId) {
    boolean handledEvent = true;
    boolean clearPressedItem = false;

    final int actionMasked = MotionEventCompat.getActionMasked(event);
    switch (actionMasked) {
    case MotionEvent.ACTION_CANCEL:
        handledEvent = false;
        break;
    case MotionEvent.ACTION_UP:
        handledEvent = false;
        // $FALL-THROUGH$
    case MotionEvent.ACTION_MOVE:
        final int activeIndex = event.findPointerIndex(activePointerId);
        if (activeIndex < 0) {
            handledEvent = false;
            break;
        }

        final int x = (int) event.getX(activeIndex);
        final int y = (int) event.getY(activeIndex);
        final int position = pointToPosition(x, y);
        if (position == INVALID_POSITION) {
            clearPressedItem = true;
            break;
        }

        final View child = getChildAt(position - getFirstVisiblePosition());
        setPressedItem(child, position, x, y);
        handledEvent = true;

        if (actionMasked == MotionEvent.ACTION_UP) {
            clickPressedItem(child, position);
        }
        break;
    }

    // Failure to handle the event cancels forwarding.
    if (!handledEvent || clearPressedItem) {
        clearPressedItem();
    }

    // Manage automatic scrolling.
    if (handledEvent) {
        if (mScrollHelper == null) {
            mScrollHelper = new ListViewAutoScrollHelper(this);
        }
        mScrollHelper.setEnabled(true);
        mScrollHelper.onTouch(this, event);
    } else if (mScrollHelper != null) {
        mScrollHelper.setEnabled(false);
    }

    return handledEvent;
}