2016-01-22 90 views
-2

我使用此代碼顯示/隱藏工具欄在列表視圖向下/向上滾動。如何使工具欄在listview滾動上隱藏/顯示平滑。 android

brandListView.setOnScrollListener(new AbsListView.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() == brandListView.getId()) { 
      final int currentFirstVisibleItem = brandListView.getFirstVisiblePosition(); 

      if (currentFirstVisibleItem > mLastFirstVisibleItem) { 
       // getSherlockActivity().getSupportActionBar().hide(); 
       ((AppCompatActivity)getActivity()).getSupportActionBar().hide(); 
      } else if (currentFirstVisibleItem < mLastFirstVisibleItem) { 
       // getSherlockActivity().getSupportActionBar().show(); 
       ((AppCompatActivity)getActivity()).getSupportActionBar().show(); 
      } 

      mLastFirstVisibleItem = currentFirstVisibleItem; 
     } 
    } 
}); 

雖然它隱藏/顯示列表視圖如預期,但過渡並非一帆風順。它的一種非常突然的輕彈效果。

任何人都可以幫助我如何使它平滑。

回答

0

試試我的圖書館:RetractableToolbar

您必須先導入build.gradle

compile 'it.michelelacorte.retractabletoolbar:library:1.0.0' 

比你的Activity類:

RetractableToolbarUtil.ShowHideToolbarOnScrollingListener showHideToolbarListener; 
recyclerView.addOnScrollListener(showHideToolbarListener = new RetractableToolbarUtil.ShowHideToolbarOnScrollingListener(toolbar)); 

if (savedInstanceState != null) { 
      showHideToolbarListener.onRestoreInstanceState((RetractableToolbarUtil.ShowHideToolbarOnScrollingListener.State) savedInstanceState 
        .getParcelable(RetractableToolbarUtil.ShowHideToolbarOnScrollingListener.SHOW_HIDE_TOOLBAR_LISTENER_STATE)); 
} 

這是結果:

enter image description here

編輯:

這僅僅是RecyclerView,但我注意到,你需要一個ListView,那麼你應該在這個文件看看:RetractableToolbarUtil, 修改以滿足您的需求!

相關問題