6

Sto utilizzando una barra degli strumenti all'interno di un oggetto ListFragment in Android e posso nasconderla/mostrarla durante lo scorrimento. I implement AbsListView.OnScrollListener e utilizzando questo codice all'interno:Nascosto "liscio" della barra degli strumenti di Android durante lo scorrimento

@Override 
public void onScroll(AbsListView view, int firstVisibleItem, 
        int visibleItemCount, int totalItemCount) { 
    // Leave this empty 
} 

/** 
* Method to detect if the scroll status changed 
* 
* @param listView 
* @param scrollState 
*/ 
@Override 
public void onScrollStateChanged(AbsListView listView, int scrollState) { 
    if (!isTablet) { 
     final int currentFirstVisibleItem = listView.getFirstVisiblePosition(); 

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

In questo modo la barra degli strumenti è nascosta quando ho scorrere verso il basso e mostrato se ho scorrere verso l'alto. Ma l'animazione è molto "difficile" e mi piacerebbe avere una transizione più fluida. Esso dovrebbe essere simile a questo (senza linguette, solo la barra degli strumenti): https://cms-images.idgesg.net/images/article/2014/10/playscroll-100509755-large.gif

risposta

7

ho risolto il problema utilizzando questa libreria: https://github.com/ksoichiro/Android-ObservableScrollView

ho modificato l'esempio ToolbarControlListView e ora ho un'animazione fluida. Quindi ho anche dovuto cambiare il file di layout del mio ListView che non consisteva in un FrameLayout come genitore. Dai un'occhiata agli esempi in GitHub!

+3

puoi per favore pubblicare il codice modificato? –