片段中的Android滑动侦听器

盖坦L。

我正在关注本教程http://www.brightec.co.uk/ideas/android-listview-alphabet-scroller以实现带有侧视图的字母列表视图,其中包含可以滚动以使列表视图直接滚动的字母到那封信。它适用于他们的示例,但是我需要将此代码放在片段中,并且滚动不再起作用。我不知道如何转换以下内容,因此它可以在片段中使用:

private class SideIndexGestureListener extends GestureDetector.SimpleOnGestureListener {
    @Override
    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
        Log.d("DEBUG", "SideIndexGestureListener.onScroll() distanceX=" + distanceX + " distanceY=" + distanceY);
        // we know already coordinates of first touch
        // we know as well a scroll distance
        sideIndexX = sideIndexX - distanceX;
        sideIndexY = sideIndexY - distanceY;

        // when the user scrolls within our side index
        // we can show for every position in it a proper
        // item in the country list
        if (sideIndexX >= 0 && sideIndexY >= 0) {
            displayListItem();
        }

        return super.onScroll(e1, e2, distanceX, distanceY);
    }
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    if (mGestureDetector.onTouchEvent(event)) {
        return true;
    } else {
        return false;
    }
}

我厌倦了做以下事情:

@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.activity_main_fragment_contacts, container, false);

    mGestureDetector = new GestureDetector(context, new SideIndexGestureListener());

    rootView.setOnTouchListener(new View.OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {
            if (mGestureDetector.onTouchEvent(event)) {
                return true;
            } else {
                return false;
            }
        }
    });

    return rootView;
}

但它永远不会到达 onScroll 方法,所以我不知道我做错了什么?

盖坦L。

好的,我对代码进行了一些修改,并设法通过在我设置为 rootwiew 的侦听器的 onTouch 方法中始终返回 true 来使其工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章