2015-09-22 16 views
6

Ho già ottenuto la rimozione di layout_scrollFlags nel mio CollapsingToolbarLayout. ma ho bisogno di rimuovere il layout_behavior del mio NestedScrollView in modo che quando non ci sono contenuti sulla mia vista di scorrimento nidificata, anche il crollo della barra degli strumenti sarà disabilitato. Rimozione del layout_behavior del mio NestedScrollView è molto semplice, basta rimuovere la riga di codice nel tuo xml letteralmente, ma come posso rimuoverlo in modo programmatico?Come rimuovere in modo programmatico un comportamento di layout del mio NestedScrollView?

mio xml:

<android.support.design.widget.CoordinatorLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:app="http://schemas.android.com/apk/res-auto" 

      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

      <android.support.design.widget.AppBarLayout 
       android:id="@+id/appbar" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:fitsSystemWindows="true" 
       android:background="@android:color/white"> 

       <android.support.design.widget.CollapsingToolbarLayout 
        android:id="@+id/collapsing_toolbar" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:fitsSystemWindows="true" 
        app:contentScrim="?attr/colorPrimary" 
        app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

        <fragment 
         android:id="@+id/pawfile_header" 
         android:name="com.lightbulb.pawesome.fragments.PawfileHeaderFragment" 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:layout_marginLeft="10dp" 
         android:layout_marginTop="10dp" 
         android:fitsSystemWindows="true" 
         app:layout_collapseMode="parallax" /> 

       </android.support.design.widget.CollapsingToolbarLayout> 

      </android.support.design.widget.AppBarLayout> 

      <fragment 
       android:id="@+id/pawfile_timeline" 
       android:name="com.lightbulb.pawesome.user_timeline.PawesomeUserTimelineFragment" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

     </android.support.design.widget.CoordinatorLayout> 
+0

È possibile utilizzare Layout Visibility GONE. –

+0

Mi spiace ma la barra degli strumenti di collazione ha un figlio. così se ho intenzione di impostare la sua visibilità per andare, la vista all'interno della barra degli strumenti collassare sarà andata anche –

+0

@android_softy gentilmente visualizzare la mia domanda aggiornata –

risposta

1

È possibile rimuovere il comportamento di programmazione layout del tuo NestedScrollView impostandolo su nulla nelle sue LayoutParams, che dovrebbe essere di tipo CoordinatorLayout.LayoutParams:

CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) myNestedScrollView.getLayoutParams(); 
params.setBehavior(null); 
+0

Questo non lo fa sembra funzionare per me. Ho anche provato a reimpostare il layoutParams dopo aver chiamato setBehavior (null). – Allison

10

Try rimuovendo "appbar_scrolling_view_behavior" dal frammento e cancellando i flag di scorrimento dal CollapsingToolbarLayout

CoordinatorLayout.LayoutParams coordinatorLayoutParams = (CoordinatorLayout.LayoutParams) pawfileTimeline.getLayoutParams(); 
coordinatorLayoutParams.setBehavior(null); 

AppBarLayout.LayoutParams toolbarLayoutParams = (AppBarLayout.LayoutParams) toolbar.getLayoutParams(); 
toolbarLayoutParams.setScrollFlags(0); 
+0

L'impostazione dei flag di scorrimento su 0 era ciò che ha funzionato per me. Rimozione del comportamento di CoordinatorLayout renderebbe la mia barra degli strumenti scomparire. –