【发布时间】:2015-05-01 06:03:06
【问题描述】:
我想实现 Google Play 商店应用中使用的滚动技术。该应用程序描绘了操作栏下方的选项卡。一旦内容向上滚动,它就会向上推动操作栏并最终将其隐藏。此时选项卡仍会在顶部保持粘性。
我尝试了以下代码,但闪烁在那里 -
mRecyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() {
private static final int SCROLL_DIRECTION_UP = 1;
private static final int SCROLL_DIRECTION_DOWN = 2;
private int verticalDirection;
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
if(newState == RecyclerView.SCROLL_STATE_SETTLING) {
if (verticalDirection == SCROLL_DIRECTION_UP && getActivity().getActionBar().isShowing()) {
getActivity().getActionBar().hide();
} else if (newState == SCROLL_DIRECTION_DOWN && !getActivity().getActionBar().isShowing()) {
getActivity().getActionBar().show();
}
}
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if (dy > 0) {
verticalDirection = SCROLL_DIRECTION_UP;
} else {
verticalDirection = SCROLL_DIRECTION_DOWN;
}
}
});
另外,我没有使用 ACTION_BAR_OVERLAY,因为我没有找到任何理由在我的用例中使用它。
谁能给我指点这方面的任何资源?
【问题讨论】:
-
尝试使用工具栏?
-
感谢您的建议,我尝试使用工具栏,现在闪烁消失了。然而,显示/隐藏动画现在快了很多,工具栏有点卡,不会随着平滑过渡而消失。
标签: android android-actionbar material-design android-recyclerview