2017-02-24 63 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。我所做的是重新調整一些觀點(甚至參數都是一樣的),然後返回假。這導致連鎖呼叫