Android Créer des dépendances entre les vues


Exemple

Vous pouvez utiliser le CoordinatorLayout.Behavior pour créer des dépendances entre les vues. Vous pouvez ancrer une View à une autre View par:

Par exemple, pour créer un Behavior permettant de déplacer un ImageView lorsqu'un autre est déplacé (exemple, barre d'outils), procédez comme suit:

  • Créez le comportement personnalisé :

    public class MyBehavior extends CoordinatorLayout.Behavior<ImageView> {...}
    
  • Remplacez la méthode layoutDependsOn renvoyant true . Cette méthode est appelée chaque fois qu'une modification est apportée à la mise en page:

    @Override
    public boolean layoutDependsOn(CoordinatorLayout parent, 
            ImageView child, View dependency) {
        // Returns true to add a dependency.
        return dependency instanceof Toolbar;
    }
    
  • Chaque fois que la méthode layoutDependsOn renvoie true la méthode onDependentViewChanged est appelée:

    @Override
    public boolean onDependentViewChanged(CoordinatorLayout parent, ImageView child, View dependency) {
        // Implement here animations, translations, or movements; always related to the provided dependency.
        float translationY = Math.min(0, dependency.getTranslationY() - dependency.getHeight()); 
        child.setTranslationY(translationY);
    }