Outils pour utilisateurs

Outils du site


lang:android:layout

Bonnes pratiques

Tout est dans la documentation de Material Design 3.

https://m3.material.io/foundations/layout

Dimension de la zone cliquable : minimum 48*48dp. Si le composant fait une taille inférieure, il faut que la zone en dehors du composant soit cliquable jusqu'à une dimension minimale de 48*48dp.

Composants

DrawerLayout

Le DrawerLayout est un conteneur qui permet d'afficher une sorte de popup avec une liste d'action possible : des boutons ou des images.

Le problème est que, parfois, on souhaite que l'action soit effectuée une fois que l'animation de disparition du DrawerLayout terminée et non pas directement depuis l'événement setOnClickListener.

La solution est de mettre l'action dans une variable Runnable.

drawerLayout.addDrawerListener(new DrawerLayout.SimpleDrawerListener() {
  @Override
  public void onDrawerOpened(final View drawerView) {
    callDrawerClosed = () -> {
      // Action par défaut si le DrawerLayout est fermé sans cliquer sur une action.
    };
  }
 
  @Override
  public void onDrawerClosed(final View drawerView) {
    callDrawerClosed.run();
  }
});

Et bien sûr ne pas oublier d'assigner l'action dans callDrawerClosed pour chaque action possible du DrawerLayout.

RelativeLayout

Utiliser à la place ConstraintLayout.

ConstraintLayout

Ce composant permet de placer des composants à distance régulière en eux.

  • Regrouper plusieurs composants entre eux

Il faut pour cela placer un composant invisible dans la chaîne des widgets. Puis placer un composant avant et après ce composant invisible.

Évidemment, il serait peut-être aussi beaucoup plus facile de placer un ConstraintLayout dans la chaîne et mettre les composants dans ce sous layout.

Constraint Layout group multiple views as a single item in the chain Archive du 20/11/2021 le 23/08/2023

MotionScene

lang/android/layout.txt · Dernière modification : 2023/08/23 12:19 de root