Android 如何使工具栏在listview滚动时平滑隐藏/显示。安卓

Android 如何使工具栏在listview滚动时平滑隐藏/显示。安卓,android,listview,Android,Listview,我正在使用这段代码来显示/隐藏listview上的工具栏向下/向上滚动 brandListView.setOnScrollListener(new AbsListView.OnScrollListener() { int mLastFirstVisibleItem = 0; @Override public void onScrollStateChanged(AbsListView view, int scrollState) { } @Overrid

我正在使用这段代码来显示/隐藏listview上的工具栏向下/向上滚动

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;
        }
    }
});
brandListView.setOnScrollListener(新的AbsListView.OnScrollListener(){
int mLastFirstVisibleItem=0;
@凌驾
公共无效onScrollStateChanged(AbsListView视图,int scrollState){
}
@凌驾
public void onScroll(AbsListView视图、int firstVisibleItem、int visibleItemCount、int totalItemCount){
if(view.getId()==brandListView.getId()){
final int currentFirstVisibleItem=brandListView.getFirstVisiblePosition();
如果(currentFirstVisibleItem>mLastFirstVisibleItem){
//getSherlockActivity().getSupportActionBar().hide();
((AppCompatActivity)getActivity()).getSupportActionBar().hide();
}else if(currentFirstVisibleItem
虽然它像预期的那样隐藏/显示listview,但转换一点也不平稳。这是一种非常突然的轻弹效果

有人能帮我吗?我怎样才能让它顺利进行。

试试我的图书馆:

您必须在
build.gradle中导入:

compile 'it.michelelacorte.retractabletoolbar:library:1.0.0'
比你的活动课:

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));
}
结果是:

编辑:

这仅适用于
RecyclerView
,但我注意到您需要一个
ListView
,然后您应该查看此文件:, 修改它以满足您的需要