【问题标题】:Hiding BottomNavigationView from different fragment从不同的片段隐藏BottomNavigationView
【发布时间】:2017-11-25 19:11:36
【问题描述】:

我的应用有 3 个片段从 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);
    }
}

【问题讨论】:

    标签: android android-fragments bottomnavigationview


    【解决方案1】:

    试试这个

    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);
        }
    });
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-27
      • 1970-01-01
      • 2021-12-16
      • 1970-01-01
      相关资源
      最近更新 更多