隐藏底部列表中的不同片段



我的应用程序有3个片段,这些片段因底部范围的主动脉而被膨胀。其中一个片段使用回收库,并且可滚动,而底部范围内的recyclerview中的最后一项正在覆盖。根据Google的指南,BottomNavigationView应该隐藏在向下滚动并显示滚动。它很容易使其躲藏在主敢性中,但是当我试图将其隐藏在另一个片段中时,它不起作用。我该如何正确执行此操作?此代码从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);
        }
    });

,应在隐藏底部列出的主动脉中调用此方法:

public void setNavigationVisibility(boolean visible) {
    if (navigation.isShown() && !visible) {
        navigation.setVisibility(View.GONE);
    }
    else if (!navigation.isShown() && visible){
        navigation.setVisibility(View.VISIBLE);
    }
}

尝试此

recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
    @Override
    public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
        if (dy > 0) {
            ((MainActivity)getActivity()).setNavigationVisibility(false);
        } else if (dy < 0 ) {
            ((MainActivity)getActivity()).setNavigationVisibility(true);
        }
    }
    @Override
    public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
        super.onScrollStateChanged(recyclerView, newState);
    }
});

当您使用片段中的活动方法时,您必须公开创建方法,并且可以通过打字来访问该方法。

最新更新