我有一个布局,其中RecyclerView在另一个带有几个按钮的布局上方。第一个recycler项是一个标题,具有大的顶部边距以在其上方创建空白空间。现在我想通过那个空白空间使点击生效,滑动也应该滚动recycler。这些视图在一个简单的框架中。
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<package.FeedBackgroundView
android:id="@+id/feed_background"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:scrollbars="vertical"/>
</FrameLayout>
回收站视图(recycler)在仅具有顶部填充或边距的情况下会消耗所有点击事件。我需要让点击事件穿过视图,但滑动操作应该仍留在回收站内以进行滚动。
编辑:
我已经解决了点击事件问题,解决方案如下:
recycler.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
background.dispatchTouchEvent(event);
return false;
}
});
现在我有一个问题,因为我翻译了背景(视差效果),点击事件没有到达正确的位置。我需要同时翻译事件吗?