Запретить прокрутку галереи при выборе элемента - PullRequest
2 голосов
/ 08 декабря 2011

Как я могу предотвратить прокрутку Gallery при выборе элемента?
OnItemClickListener до сих пор был неудачным для меня.

gal.setOnItemClickListener(new OnItemClickListener() 
{
    public void onItemClick(AdapterView parent, View v, int position, long id) 
{
         ((ImageGallery) parent).setScrollingEnabled(false);
}
});

У меня есть подклассы Gallery:

public class ImageGallery extends Gallery
{
  private boolean stuck = false;

  public ImageGallery(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
  }

  public ImageGallery(Context context, AttributeSet attrs) {
    super(context, attrs);
  }

  public ImageGallery(Context context) {
    super(context);
  }

  @Override
  public boolean onTouchEvent(MotionEvent event) 
  {
    return stuck || super.onTouchEvent(event);
  }

  @Override
  public boolean onKeyDown(int keyCode, KeyEvent event) {
    switch (keyCode) {
    case KeyEvent.KEYCODE_DPAD_LEFT:
    case KeyEvent.KEYCODE_DPAD_RIGHT:
      return stuck || super.onKeyDown(keyCode, event);
    }
    return super.onKeyDown(keyCode, event);
  }

  public void setScrollingEnabled(boolean enabled) 
  {
    stuck = !enabled;
  }
}

1 Ответ

1 голос
/ 07 апреля 2012

расширение галереи и переопределение метода onSingleTapUp и предоставление вашей пользовательской реализации для выполнения события щелчка, используя метод executeItemClick ().

...