父母知道内心孩子是否可以应付点击

时间:2019-02-15 09:48:59

标签: android android-layout

我的父视图需要知道其内部视图之一是否被处理为click事件。处理点击事件的项目在水平recyclerview内部(一次只能在屏幕上看到一个项目)。

这是我的布局

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/parentViewThatNeedToknowIfClickHasHappened"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/white">

    <android.support.design.widget.CoordinatorLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    .... More views

        <android.support.v4.widget.NestedScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_behavior="@string/appbar_scrolling_view_behavior">

            <FrameLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <android.support.v7.widget.RecyclerView
                    android:id="@+id/viewThatHasItemsThatReceiveClicks
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"/>

                ....More Views
            </FrameLayout>
        </android.support.v4.widget.NestedScrollView>

    </android.support.design.widget.CoordinatorLayout>

.... more views

</FrameLayout>

recyclerview项具有许多视图,其中一些具有附加的单击侦听器。单击其中一项时,将显示一个弹出视图。当弹出窗口可见并且我触摸其他可处理点击的视图之一时,弹出窗口的内容就会更新。

在父视图(parentViewThatNeedToknowIfClickHasHappened)中我需要实现的目标是:

  • 如果未显示弹出视图,则不执行任何操作;
  • 如果显示弹出窗口:
    • 如果viewThatHasItemsThatReceiveClicks中没有可以点击的项目被点击,请关闭弹出窗口。
    • 如果viewThatHasItemsThatReceiveClicks中的任何可接收点击的项目都将被点击,则不执行任何操作。

在我的parentViewThatNeedToknowIfClickHasHappened中,我已覆盖onInterceptTouchEvent,但我无法得出任何结论,那就是知道recyclerview的各项中将会发生什么。

有什么想法可以实现我的假装吗?

0 个答案:

没有答案