6

Ich benutze eine Toolbar in einem ListFragment in Android und kann es beim Scrollen verstecken/anzeigen. Ich implement AbsListView.OnScrollListener und benutzen Sie diesen Code in:Android "glatter" Ausblenden der Toolbar beim Scrollen

@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; 
    } 
} 

diese Weise wird die Symbolleiste ausgeblendet, wenn ich nach unten scrollen und angezeigt, wenn ich nach oben scrollen. Aber die Animation ist sehr "hart" und ich hätte gerne einen glatteren Übergang. Es sollte wie folgt aussehen (ohne Reiter, sondern nur die Toolbar): https://cms-images.idgesg.net/images/article/2014/10/playscroll-100509755-large.gif

Antwort

7

Ich löste das Problem der Verwendung dieser Bibliothek: https://github.com/ksoichiro/Android-ObservableScrollView

ich das ToolbarControlListView Beispiel geändert und jetzt habe ich eine glatte Animation. Daher musste ich auch die Layoutdatei meines ListView ändern, die nicht aus einem FrameLayout als Elternteil bestand. Schauen Sie sich die Beispiele in GitHub an!

+3

können Sie bitte Ihren geänderten Code posten? –

Verwandte Themen