0

我正在关注这个问题:如何停止在图库小部件中滚动?

我试图像这样实现我的自定义画廊:

public class CustomGallery : Gallery
    {
        public CustomGallery(Context context, IAttributeSet attrs) :
            base(context, attrs)
        {
            Initialize();
        }

        public CustomGallery(Context context, IAttributeSet attrs, int defStyle) :
            base(context, attrs, defStyle)
        {
            Initialize();
        }

        private void Initialize()
        {
        }

        public override bool OnFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
        {
            Keycode kEvent;
            if (isScrollingLeft(e1, e2))
            { //Check if scrolling left
                kEvent = Keycode.DpadLeft;
            }
            else
            { //Otherwise scrolling right
                kEvent = Keycode.DpadRight;
            }

            OnKeyDown(kEvent, null);

            return true;
        }

        private bool isScrollingLeft(MotionEvent e1, MotionEvent e2)
        {
            return e2.GetX() > e1.GetX();


        }
    }

我在布局中引用了自定义图库,我看到了第一张图片,但是当我尝试滚动到下一张图片时没有任何反应。

奇怪的是,如果我删除 OnFling 的覆盖,我的画廊仍然没有滚动?当然,如果我不覆盖任何东西,我的自定义组件应该表现得像普通的画廊组件吗?

PS:我要做的就是防止画廊在我向左或向右滑动时滚动浏览多张图片,我想一次滚动一张图片。

任何帮助表示赞赏!

4

1 回答 1

0

从头开始,想通了,我在我的活动中覆盖了 OnTouch 事件><

于 2012-09-20T09:54:23.037 回答