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代碼。

相關問題