【发布时间】:2018-09-09 04:18:35
【问题描述】:
我想创建一个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;
}
});
【问题讨论】:
-
只是一个问题 - 为什么你的
setOnTouchListener在setOnLongClickListener里面?
标签: android android-recyclerview android-event