Java 类android.support.v4.widget.ListViewAutoScrollHelper 实例源码

项目:Rocko-Android-Demos    文件:ListViewActivity.java   
private void init() {
        listView = (ListView) findViewById(R.id.list_view);

        String[] strs = getData(100);
        List<Map<String, Object>> list = new ArrayList<>();
        for (String str : strs) {
            Map<String, Object> map = new HashMap<>();
            map.put("text", str);
            list.add(map);
        }
        SimpleAdapter adapter = new SimpleAdapter(this, list, R.layout.item_simple, new String[]{"text"}, new int[]{R.id.text_view});
        listView.setAdapter(adapter);

        AutoScrollHelper autoScrollHelper = new ListViewAutoScrollHelper(listView);
        listView.setOnTouchListener(autoScrollHelper);
        autoScrollHelper.setEnabled(true);
//        autoScrollHelper.setActivationDelay(3000);
//        autoScrollHelper.setRampDownDuration(3000);
        Toast.makeText(this, "长按上或下边缘", Toast.LENGTH_SHORT).show();
    }
项目:boohee_v5.6    文件:ListPopupWindow.java   
public boolean onForwardedEvent(MotionEvent event, int activePointerId) {
    boolean handledEvent = true;
    boolean clearPressedItem = false;
    int actionMasked = MotionEventCompat.getActionMasked(event);
    switch (actionMasked) {
        case 1:
            handledEvent = false;
            break;
        case 2:
            break;
        case 3:
            handledEvent = false;
            break;
    }
    int activeIndex = event.findPointerIndex(activePointerId);
    if (activeIndex < 0) {
        handledEvent = false;
    } else {
        int x = (int) event.getX(activeIndex);
        int y = (int) event.getY(activeIndex);
        int position = pointToPosition(x, y);
        if (position == -1) {
            clearPressedItem = true;
        } else {
            View child = getChildAt(position - getFirstVisiblePosition());
            setPressedItem(child, position, (float) x, (float) y);
            handledEvent = true;
            if (actionMasked == 1) {
                clickPressedItem(child, position);
            }
        }
    }
    if (!handledEvent || clearPressedItem) {
        clearPressedItem();
    }
    if (handledEvent) {
        if (this.mScrollHelper == null) {
            this.mScrollHelper = new ListViewAutoScrollHelper(this);
        }
        this.mScrollHelper.setEnabled(true);
        this.mScrollHelper.onTouch(this, event);
    } else if (this.mScrollHelper != null) {
        this.mScrollHelper.setEnabled(false);
    }
    return handledEvent;
}