Я хотел бы создать RecyclerView
, в котором пользователь может долго щелкать изображение и предварительно просматривать полноразмерное изображение, пока не отпустит длинный щелчок.
У меня это в основном работает, но проблема у меня заключается в том, что если я начну длинный щелчок, а затем проведу пальцем (удерживая нажатой кнопку), слушатель больше не будет ждать моего события ACTION_UP
и предварительного просмотра изображение никогда не уходит. Можно ли как-то игнорировать перетаскивание / прокрутку, чтобы мой вид предварительного просмотра исчезал, когда я отпускаю длинный щелчок?
Вот что у меня есть для слушателей событий:
/* Long press will trigger hover previewer */
holder.thumbnailImageView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View pView) {
holder.thumbnailImageView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View pView, MotionEvent pEvent) {
pView.onTouchEvent(pEvent);
// We're only interested in when the button is released.
if (pEvent.getAction() == MotionEvent.ACTION_UP) {
if (isImageViewPressed) {
// Do something when the button is released.
isImageViewPressed = false;
mHoverView.setVisibility(View.GONE);
}
}
return false;
}
});
isImageViewPressed = true;
GlideApp.load(item.getUrl()).into(mHoverView);
mHoverView.setVisibility(View.VISIBLE);
return true;
}
});