2017-02-24 69 views
2

我实现了CoordinatorLayout.Behavior并覆盖了onDependentViewChanged函数,但它让我担心它会在几毫秒内触发,即使滚动视图仍然保持不动。onDependentViewChanged从CoordinatorLayout.Behavior始终调用

如果我返回false从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> 

回答

3

显然与返回false说我没能做到。 关键是如果不做任何修改而不做任何事情,则返回false。我所做的是重新调整一些观点(甚至参数都是一样的),然后返回假。这导致连锁呼叫