onDependentViewChanged 从 CoordinatorLayout.Behavior 一直调用

onDependentViewChanged from CoordinatorLayout.Behavior called all the time

我实现了 CoordinatorLayout.Behavior 并重写了 onDependentViewChanged 函数,但令我担心的是即使滚动视图保持静止,它也会每隔几毫秒触发一次。

如果我从 onDependentViewChanged

return 为假,这不会改变

我找不到这方面的任何信息,但这种向我的日志发送垃圾邮件的行为看起来并不正常。会耗尽电池电量。

我的简化布局如下所示:

<SwipeRefreshLayout
        android:id="@+id/ptr"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.design.widget.CoordinatorLayout
            android:id="@+id/coordinatorLayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

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

            <FrameLayout
                android:id="@+id/avatarContainer"
                android:layout_width="20dp"
                android:layout_height="20dp"
                app:layout_anchor="@id/scrollView"
                app:layout_anchorGravity="center_horizontal|top"
                app:layout_behavior="my.app.behaviors.ProfileAvatarBehavior">

            </FrameLayout>

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

显然我没有按照 returning false 所述的那样做。 关键是 return false 如果不进行任何更改并且不对视图进行任何操作。我所做的是调整一些视图的大小(甚至参数是相同的)然后 returned false。这导致链调用