滚动时,Android"更平滑"隐藏工具栏

Mok*_*pps 6 android android-listview onscrolllistener material-design android-toolbar

我在Android中的ListFragment中使用工具栏,可以在滚动期间隐藏/显示它.我implement AbsListView.OnScrollListener在里面使用这个代码:

@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;
    }
}
Run Code Online (Sandbox Code Playgroud)

这样,当我向下滚动时隐藏工具栏,如果向上滚动则显示工具栏.但动画非常"难",我希望有一个更顺畅的过渡.它应该看起来像这样(没有标签,只有工具栏):https://cms-images.idgesg.net/images/article/2014/10/playscroll-100509755-large.gif

Mok*_*pps 7

我使用这个库解决了这个问题:https://github.com/ksoichiro/Android-ObservableScrollView

我修改了ToolbarControlListView示例,现在我有一个平滑的动画.因此,我还必须更改我的ListView的布局文件,该文件不包含FrameLayout作为父级.看一下GitHub中的例子!

  • 你可以发布你改变的代码吗? (3认同)