我在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;
}
}
这样,当我向下滚动时,工具栏会被隐藏,如果我向上滚动则会显示。但动画非常“难”,我希望有一个更平滑的过渡。它应该如下所示(没有标签,只有工具栏):https://cms-images.idgesg.net/images/article/2014/10/playscroll-100509755-large.gif
答案 0 :(得分:7)
我使用此库解决了问题:https://github.com/ksoichiro/Android-ObservableScrollView
我修改了ToolbarControlListView示例,现在我有了一个平滑的动画。因此,我还必须更改我的ListView的布局文件,它不包含FrameLayout作为父级。看一下GitHub中的例子!