向上滚动 ActionBar 并在 RecyclerView 中滚动隐藏
Scroll ActionBar up and hide with scroll in RecyclerView
我想实现 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 设计库 轻松实现此目的。
检查这个例子:
https://github.com/chrisbanes/cheesesquare
我想实现 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 设计库 轻松实现此目的。
检查这个例子:
https://github.com/chrisbanes/cheesesquare