2017-02-24 17 views
2

Ich implementierte CoordinatorLayout.Behavior und übersteuerte onDependentViewChanged Funktion, aber es macht mir Sorgen, dass es alle paar Millisekunden feuert selbst die Scroll-Ansicht bleibt noch. sieht nicht so aus wie ein richtiges VerhaltenonDependentViewChanged von CoordinatorLayout.Behavior rief die ganze Zeit

, wenn ich von onDependentViewChanged

ich auf diese keine Informationen finden kann nicht falsch zurückgeben nicht ändert, aber das, was meine Protokolle Spamming. Wird die Batterie entleeren.

Mein vereinfachtes Layout sieht wie folgt aus:

<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> 

Antwort

3

Offenbar habe ich nicht wie gesagt nicht mit der Rückkehr falsch. Der Schlüssel war, false zurückzugeben, wenn keine Änderungen vorgenommen werden und nichts mit View gemacht wird. Was ich tat, war die Größe einiger Ansichten (auch die Parameter waren die gleichen) und dann falsch zurückgegeben. Dies führte zu Kettenrufen

Verwandte Themen