6

Qui è la mia messa a punto, sto facendo funzionare un DrawerLayout, al suo interno è un CoordinatorLayout contenente un AppBarLayout e nestedscrollview. Sto provando a far scorrere normalmente lo scrolled di nestedscrollview e la barra degli strumenti a nascondersi scorrendo verso il basso e riappare scorrendo verso l'alto. In allegato è il mio codice XML. Gradirei qualsiasi aiuto .. ho letto tutte le domande relative e implementato le loro risposte senza alcun successo.CoordinatorLayout non nasconde Toolbar sul scorrimento nonostante attuare tutti i parametri richiesti

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:id="@+id/drawer_layout_admin" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<android.support.design.widget.CoordinatorLayout 
    android:id="@+id/admincoordinator" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appBarLayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <include 
      android:id="@+id/app_bar" 
      layout="@layout/app_bar" 
      app:layout_scrollFlags="scroll|enterAlways" /> 

     <android.support.design.widget.TabLayout 
      android:id="@+id/tabLayout" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" /> 
    </android.support.design.widget.AppBarLayout> 

    <android.support.v4.widget.NestedScrollView 
     android:id="@+id/adminrelScroll" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

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

<android.support.design.widget.NavigationView 
    android:id="@+id/nav_drawer" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    app:headerLayout="@layout/drawer_header" 
    app:menu="@menu/menu_drawer" /> 

+0

Per me anche lo stesso problema, gli eventi di scorrimento non sono affatto funzionando. hai avuto una risposta per questo? – Naruto

+0

stesso qui. Questo è strano – ThanosFisherman

+0

@ Tutti Chiunque ha trovato una soluzione per questo. Mi sta rompendo seriamente la testa. –

risposta

1

Penso che facendo uso della nuova CollapsingToolbarLayout aiuterà ... una breve descrizione di alcune very useful exploration of the new Android Design Support Library mostra come avvolgere una barra degli strumenti in un CollapsingToolbarLayout e personalizzare gli effetti impostando layout_collapseMode.

aggiornamento

Penso che l'aggiunta di un onScrollListener al vostro ListView e visualizzare/nascondere la barra degli strumenti come in questo esempio da this answer:

getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY); 

listView.setOnScrollListener(new OnScrollListener() { 
    int mLastFirstVisibleItem = 0; 

    @Override 
    public void onScrollStateChanged(AbsListView view, int scrollState) { }   

    @Override 
    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { 

     if (view.getId() == listView.getId()) { 
      final int currentFirstVisibleItem = listView.getFirstVisiblePosition(); 

      if (currentFirstVisibleItem > mLastFirstVisibleItem) { 
       getSupportActionBar().hide(); 
      } else if (currentFirstVisibleItem < mLastFirstVisibleItem) { 
       getSupportActionBar().show(); 
      } 

      mLastFirstVisibleItem = currentFirstVisibleItem; 
     }    
    } 
}); 
+0

non è un layout di barra degli strumenti compresso per il caso in cui si dispone di una barra degli strumenti (extra?) Di grandi dimensioni che viene ripristinata in dimensioni normali sullo scorrimento, ciò che voglio ottenere è semplicemente nascondere la barra degli strumenti di dimensioni normali sullo scorrimento. questo ha reso chiara la mia domanda :) –

4

ho avuto lo stesso problema per una settimana e provato quasi tutto per risolverlo Tuttavia sono riuscito a risolvere il problema.

Dove avete qualcosa di simile ...

<include 
    android:id="@+id/app_bar" 
    layout="@layout/app_bar" 
    app:layout_scrollFlags="scroll|enterAlways" /> 

... sostituirlo con tutto ciò che è nel layout app_bar.xml. Per esempio:

<android.support.v7.widget.Toolbar 
    android:id="@+id/main_toolbar" 
    style="@style/AppTheme.Toolbar" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    app:layout_scrollFlags="scroll|enterAlways"/> 

Sembra che per qualche ragione, scorrimento con CoordinatorLayout non funziona quando si utilizza il tag <include>.

+0

Odio così tanto che questo è tutto ciò di cui avevo bisogno per tutto questo tempo !! XD Grazie! – leenephi

1

Come @Farbod Salamat-Zadeh ha detto prima: CoordinatorLayout non funziona quando si utilizza il tag <include>.
Ma è possibile utilizzare <include> questo modo:

<include 
    android:id="@+id/app_bar" 
    layout="@layout/app_bar" /> 

Parametro app:layout_scrollFlags="scroll|enterAlways" solo dovrebbe essere spostato nel vostro app_bar.xml se accettabile per voi

Problemi correlati