使用 CollapsingToolbarLayout 滚动后不会调用 OnClick 事件。

Posted

技术标签:

【中文标题】使用 CollapsingToolbarLayout 滚动后不会调用 OnClick 事件。【英文标题】:OnClick event does't called after scrolling with CollapsingToolbarLayout. 【发布时间】:2018-06-01 02:04:42 【问题描述】:

我用CollapsingToolbarLayout实现了视差效果,发现一个问题:当我在滚动和视差效果之后立即点击RecyclerView项目时,onClick事件没有被调用,但是onTouch事件987654325@ 被调用。如果您等待几秒钟(不点击),它会运行良好。

<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_
    android:layout_
    android:fitsSystemWindows="true">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appBarLayout"
        android:layout_
        android:layout_
        android:fitsSystemWindows="true">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsingToolbarLayout"
            android:layout_
            android:layout_
            android:fitsSystemWindows="true"
            app:layout_scrollFlags="scroll">

            <ImageView
                android:id="@+id/imageView"
                android:layout_
                android:layout_
                android:fitsSystemWindows="true"
                android:src="@drawable/img_stub"/>

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_
                android:layout_/>
        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recyclerView"
        android:layout_
        android:layout_
        app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
</android.support.design.widget.CoordinatorLayout>

当我将app:layout_scrollFlags="scroll" 添加到 CollapsingToolbarLayout 时出现问题。 我认为它可以取决于稀松布动画......

【问题讨论】:

您好 Dima,我遇到了完全相同的问题,我花了几天时间才将其缩小到这个问题。您找到解决方法了吗? 【参考方案1】:

这似乎是NestedScrollView 中的一个错误。您可以使用来自here 的FixedAppBarLayoutBehaviour 来解决此问题。

并将其添加到您的AppBarLayout,如下所示:

 <android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar"
        android:layout_
        android:layout_
        app:layout_behavior="your.package.FixAppBarLayoutBehavior">

【讨论】:

今天,我整个晚上都在解决这个问题。当涉及到 NestedScrollView 时,在 UI 开始在按钮上注册 OnClick 事件之间存在延迟(奇怪的是仅在某些手机上)。 @Petr 提供的解决方法对我有用。 Dik za 提示 :)。【参考方案2】:

我为这个错误创建了一个问题。 https://issuetracker.google.com/issues/70883270

这是支持库开发团队的回答: “我们的工程团队已经解决了这个问题。它将在未来的支持库版本中提供。”

【讨论】:

以上是关于使用 CollapsingToolbarLayout 滚动后不会调用 OnClick 事件。的主要内容,如果未能解决你的问题,请参考以下文章

在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?

今目标使用教程 今目标任务使用篇

Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)

MySQL db 在按日期排序时使用“使用位置;使用临时;使用文件排序”

使用“使用严格”作为“使用强”的备份

Kettle java脚本组件的使用说明(简单使用升级使用)