gpt4 book ai didi

android - 单击 RecyclerView 空白区域

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:43:43 24 4
gpt4 key购买 nike

我有一个布局,其中 RecyclerView 位于另一个带有几个按钮的布局之上。第一个回收器项目是一个带有较大顶部边距的标题,以在其上方创建一个空白空间。现在我希望点击可以在那个开放空间中工作,滑动也应该滚动回收器。这些 View 位于一个简单的框架中。

<?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.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
background.dispatchTouchEvent(event);
return false;
}
});

现在我遇到了一个问题,因为我翻译了背景(视差),点击没有到达正确的位置。我也必须翻译 Activity 吗?

最佳答案

好的,我解决了这两个问题。

recycler.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
MotionEvent e = MotionEvent.obtain(event);
Matrix m = new Matrix();
m.setTranslate(0f, -backgroundTranslation);
e.transform(m);
background.dispatchTouchEvent(e);
e.recycle();
return false;
}
});

这会复制回收器触摸事件并“修复”它的位置。翻译为背景翻译Y。

关于android - 单击 RecyclerView 空白区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30396075/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com