0

我想在页面滚动时隐藏BottomNavigationView。我发现这个代码。我想将其应用于BottomNavigationView。如何使用协调器布局查找BottomNavigationView。如何将自定义协调员行为应用到底部导航视图

class BottomNavigationBehavior extends CoordinatorLayout.Behavior<BottomNavigationView> { 
 

 
    public BottomNavigationBehavior() { 
 
     super(); 
 
    } 
 

 
    public BottomNavigationBehavior(Context context, AttributeSet attrs) { 
 
     super(context, attrs); 
 
    } 
 

 
    @Override 
 
    public boolean layoutDependsOn(CoordinatorLayout parent, BottomNavigationView child, View dependency) { 
 
     boolean dependsOn = dependency instanceof FrameLayout; 
 
     return dependsOn; 
 
    } 
 

 
    @Override 
 
    public boolean onStartNestedScroll(CoordinatorLayout coordinatorLayout, BottomNavigationView child, View directTargetChild, View target, int nestedScrollAxes) { 
 
     return nestedScrollAxes == ViewCompat.SCROLL_AXIS_VERTICAL; 
 
    } 
 

 
    @Override 
 
    public void onNestedPreScroll(CoordinatorLayout coordinatorLayout, BottomNavigationView child, View target, int dx, int dy, int[] consumed) { 
 
     if (dy < 0) { 
 
      showBottomNavigationView(child); 
 
     } else if (dy > 0) { 
 
      hideBottomNavigationView(child); 
 
     } 
 
    } 
 

 
    private void hideBottomNavigationView(BottomNavigationView view) { 
 
     view.animate().translationY(view.getHeight()); 
 
    } 
 

 
    private void showBottomNavigationView(BottomNavigationView view) { 
 
     view.animate().translationY(0); 
 
    } 
 
}

回答

0

添加

app:layout_behavior="path_to_your_custom_behavior_class" 

到你的布局XML代码。

相关问题