5

Come nascondere la barra degli strumenti dopo il collasso mentre recyclerView scorre verso il basso, mostra barra degli strumenti quando recyclerView scorre verso l'alto ed espande CollapsingToolbarLayout alla fine dell'elenco? Ora CollapsingToolbarLayout è appena compresso e la barra degli strumenti mostra tutto il tempo durante lo scorrimento.Come nascondere la barra degli strumenti dopo il collasso mentre recyclerView scorre verso il basso

<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/coordinatorlayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".screens.MainActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appbarlayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:fitsSystemWindows="true" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/collapsing_toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:fitsSystemWindows="true" 
      android:minHeight="@dimen/actionBarHeight" 
      app:contentScrim="@color/colorPrimary" 
      app:expandedTitleTextAppearance="@style/TransparentText" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

      <ImageView 
       android:id="@+id/toolbar_image" 
       android:layout_width="match_parent" 
       android:layout_height="180dp" 
       android:adjustViewBounds="true" 
       android:background="#229944" 
       android:contentDescription="@null" 
       android:scaleType="fitCenter"/> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="@dimen/actionBarHeight" 
       android:minHeight="@dimen/actionBarHeight" 
       app:layout_collapseMode="pin" 
       app:layout_scrollFlags="scroll|enterAlwaysCollapsed" 
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> 

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

     <android.support.design.widget.TabLayout 
      android:id="@+id/tabs" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:layout_gravity="bottom" 
      app:layout_scrollFlags="scroll" /> 

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

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/content" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

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

potrebbe rimuovere 'app: layout_collapseMode =" pin "' dovrebbe funzionare. Solo un'idea –

risposta

1

È possibile modificare il comportamento della barra degli strumenti. Puoi fornire il comportamento di scorrimento cambiando layout_scrollFlags.

app:layout_scrollFlags="scroll|enterAlways" 

Rimuovere pin e fanno di questo cambiamento nella vostra Toolbar e che avrebbe funzionato!

+0

Non funziona ( – preceptron

0
  • Aggiungi android:fitsSystemWindows="true" in CoordinatorLayout.
  • Rimuovi app:layout_scrollFlags="scroll|enterAlwaysCollapsed" da Toolbar.
  • Spostare TabLayout all'interno di CollapsingToolbarLayout.

    <android.support.design.widget.AppBarLayout 
        android:id="@+id/appbarlayout" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:fitsSystemWindows="true" 
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 
    
        <android.support.design.widget.CollapsingToolbarLayout 
         android:id="@+id/collapsing_toolbar" 
         android:layout_width="match_parent" 
         android:layout_height="match_parent" 
         android:fitsSystemWindows="true" 
         android:minHeight="@dimen/actionBarHeight" 
         app:contentScrim="@color/colorPrimary" 
         app:expandedTitleTextAppearance="@style/TransparentText" 
         app:layout_scrollFlags="scroll|exitUntilCollapsed"> 
    
         <ImageView 
          android:id="@+id/toolbar_image" 
          android:layout_width="match_parent" 
          android:layout_height="180dp" 
          android:adjustViewBounds="true" 
          android:background="#229944" 
          android:contentDescription="@null" 
          android:scaleType="fitCenter"/> 
    
         <android.support.v7.widget.Toolbar 
          android:id="@+id/toolbar" 
          android:layout_width="match_parent" 
          android:layout_height="@dimen/actionBarHeight" 
          android:minHeight="@dimen/actionBarHeight" 
          app:layout_collapseMode="pin" 
          app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> 
    
         <android.support.design.widget.TabLayout 
          android:id="@+id/tabs" 
          android:layout_width="match_parent" 
          android:layout_height="?attr/actionBarSize" 
          android:layout_gravity="bottom" 
          app:layout_scrollFlags="scroll" /> 
    
        </android.support.design.widget.CollapsingToolbarLayout> 
    
    </android.support.design.widget.AppBarLayout> 
    
    <android.support.v7.widget.RecyclerView 
        android:id="@+id/content" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 
    

+0

Non funziona (Mostra barra degli strumenti in ogni caso e Barra degli strumenti sovrapposizione barra delle pagine, perché CollapsingToolbarLayout è FrameLayout. – preceptron

+0

@preceptron nel codice, non mostra alcun segno di 'FrameLayout' –

2

questo dovrebbe funzionare perfettamente. Provato e funzionando in API 17

<android.support.design.widget.CoordinatorLayout 
    android:id="@+id/careers_coordinator_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    tools:context=".activity.CareersActivity" 
    xmlns:tools="http://schemas.android.com/tools"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appBar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:fitsSystemWindows="true" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

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

      <ImageView 
       android:id="@+id/background" 
       android:layout_width="match_parent" 
       android:layout_height="256dp" 
       android:scaleType="centerCrop" 
       android:fitsSystemWindows="true" 
       app:layout_collapseMode="parallax" 
       android:src="@drawable/placeholder"/> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       app:contentScrim="?attr/colorPrimary" 
       android:fitsSystemWindows="true" 
       app:titleTextColor="@color/main_color_white" 
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
       app:layout_collapseMode="pin"/> 

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

     <android.support.design.widget.TabLayout 
      android:id="@+id/tabs" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="?attr/colorPrimary" 
      app:tabIndicatorColor="@color/colorAccent" 
      app:tabSelectedTextColor="@color/colorAccent" 
      app:tabTextColor="@android:color/white" 
      app:tabIndicatorHeight="4dp" 
      app:tabMode="fixed"/> 

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

    <android.support.v4.view.ViewPager 
     android:id="@+id/viewpager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

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

Per le bandiere di scorrimento CollapsingToolbarLayout uso:

combinazione
app:layout_scrollFlags="scroll|enterAllwaysCollapsed" 

questo flag scompare barra degli strumenti durante lo scorrimento verso il basso. E CollapsingToolbarLayout si espanderà completamente quando si scorre in cima all'elenco.

E non è necessario rimuovere app:layout_collapseMode="pin" da Toolbar, perché collapseMode bandiere sono a definire il comportamento e il posizionamento di punti di vista all'interno CollapsingToolbarLayout e non effettuerà crollo attuale e l'espansione della CollapsingToolbarLayout.

Problemi correlati