Geo*_*rge 2 android android-layout android-view android-recyclerview
首先,我在这个问题上苦苦挣扎了很长时间。我不知道该怎么办,所以我没有运气就遵循了这些步骤和教程。
还有关于StackOverflow的一系列问题。我也写了自己的代码。可能是我在做一些愚蠢的事情,但无法弄清楚。
mRecyclerView.setOnTouchListener((v, event) -> {
RectF rectf = new RectF((int) event.getX(),
(int) event.getY(),
0, 0);
boolean contains = getCenter(mHeaderPopUp).contains(rectf);
if (contains) {
Toast.makeText(mContext, "Clicked", Toast.LENGTH_SHORT).show();
}
return false;
});
private RectF getCenter(View view) {
Rect rect = new Rect();
view.getLocalVisibleRect(rect);
RectF dimens = new RectF((rect.left + rect.width() / 2),
(int) (rect.top + rect.height() / 2),
0, 0);
return dimens;
}
Run Code Online (Sandbox Code Playgroud)
因此,现在我已经尝试了所有这些方法,但是我无法通过recyclerview单击到recyclerview下面的视图,您可以在下图中看到该视图。recyclerview覆盖了屏幕上的所有视图,我需要将点击传递到下面的recyclerview上,我不想将这些视图放在recyclerview上方,因为当您滚动recyclerview时,它将被动画化并覆盖其所有视图。提前致谢。 这是图像
小智 5
我想我找到了。
使用 recycler.setLayoutFrozen(true);
您仍然可以将onClickListeners分配给您的项目,但是如果不这样做,则单击会成功。
从的源代码RecyclerView.java
:
@Override
public boolean onTouchEvent(MotionEvent e) {
if (mLayoutFrozen || mIgnoreMotionEventTillDown) {
return false; // <= This will prevent the RecyclerView from getting the MotionEvent
}
...
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
948 次 |
最近记录: |