私は次の質問に従っています:ギャラリー ウィジェットでスクロールを停止するにはどうすればよいですか?
カスタムギャラリーを次のように実装しようとしました:
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: 私がやろうとしているのは、左または右にスワイプしたときにギャラリーが複数の画像をスクロールしないようにすることだけです。一度に 1 つの画像をスクロールしたいのです。
どんな助けでも大歓迎です!