我的应用程序有三个片段,它们从mainActivity中使用BottomNavigationView被膨胀。其中一个片段使用RecyclerView并且可滚动,由于BottomNavigationView在recyclerView中是最后一个项目,因此会被覆盖。根据Google的指南,bottomNavigationView应该在向下滚动时隐藏并在向上滚动时显示。从mainAcitivity中隐藏它很容易,但在尝试从其他片段隐藏它时却不起作用。我应该如何正确地做到这一点?
这个来自recyclerView的代码检查滚动状态:
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
if (dy > 0) {
//mainActivity.setNavigationVisibility(false);
} else if (dy < 0 ) {
//mainActivity.setNavigationVisibility(true);
}
}
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
}
});
应该在隐藏 bottomNavigationView 的 MainActivity 中调用此方法:
public void setNavigationVisibility(boolean visible) {
if (navigation.isShown() && !visible) {
navigation.setVisibility(View.GONE);
}
else if (!navigation.isShown() && visible){
navigation.setVisibility(View.VISIBLE);
}
}