我在 Android 的 ListFragment 中使用工具栏,可以在滚动期间隐藏/显示它。我实现 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
最佳答案
我使用这个库解决了这个问题:https://github.com/ksoichiro/Android-ObservableScrollView
我修改了 ToolbarControlListView 示例,现在我有一个流畅的动画。因此,我还必须更改不包含 FrameLayout 作为父级的 ListView 的布局文件。看看 GitHub 中的示例!
关于Android "smoother"滚动时工具栏隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27542739/