我正在关注这个问题:如何停止在图库小部件中滚动?
我试图像这样实现我的自定义画廊:
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:我要做的就是防止画廊在我向左或向右滑动时滚动浏览多张图片,我想一次滚动一张图片。
任何帮助表示赞赏!