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。这导致链调用
我实现了 CoordinatorLayout.Behavior
并重写了 onDependentViewChanged
函数,但令我担心的是即使滚动视图保持静止,它也会每隔几毫秒触发一次。
如果我从 onDependentViewChanged
我找不到这方面的任何信息,但这种向我的日志发送垃圾邮件的行为看起来并不正常。会耗尽电池电量。
我的简化布局如下所示:
<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。这导致链调用