Flottant MediaQuery pour surface Duo

Important

Les fonctionnalités et l’aide décrites dans cet article sont en préversion publique et peuvent faire l’objet de modifications importantes avant leur lancement en disponibilité générale. Microsoft ne donne aucune garantie, expresse ou implicite, concernant les informations fournies ici.

MediaQuery est le composant que vous utilisez dans le cas où vous souhaitez obtenir des informations sur l’appareil, telles que la taille de l’écran, la densité d’affichage, la mise à l’échelle du texte, etc. La charnière entre les affichages est considérée comme une partie de l’affichage. Lorsque votre application est fractionnée, la taille de l’écran correspond à la zone entière des deux écrans, y compris la charnière, avec la zone de charnière signalée comme une fonctionnalité d’affichage.

Nouvelles propriétés MediaQuery

  • displayFeatures -> List<DisplayFeature> : Zones de l’affichage qui sont obstruées par les fonctionnalités matérielles.
  • hinge -> DisplayFeature? - hinge -> DisplayFeature? Zone de l’affichage qui est obstruée spécifiquement par la charnière.

Afficher les fonctionnalités

Les fonctionnalités d’affichage sont des zones de l’affichage qui peuvent être non fonctionnelles ou obstruées.

class DisplayFeature {
    final Rect bounds;
    final DisplayFeatureType type;
    final DisplayFeatureState state;
}

Propriétés d’un DisplayFeature :

  • bounds - Rect zone de la vue occupée par cette fonctionnalité d’affichage
  • type -Enum pour le type de fonctionnalités d’affichage :
    • hinge : Séparateur physique entre les deux affichages de l’appareil. Surface duo a une hinge fonctionnalité d’affichage. Afficher le type de fonctionnalité : charnière
    • fold -Afficher comme un hinge qui a une largeur égale à zéro. Il identifie l’endroit où l’affichage flexible a un pli. Afficher le type de fonctionnalité : pliure
    • cutout -Se trouve à la périphérie de l’écran et héberge généralement des systèmes d’appareils photo. Afficher le type de fonctionnalité : découpage
  • state -Enum pour la posture de la fonctionnalité d’affichage, qui est remplie uniquement pour les pliures et les charnières. Pour les découpages, il s’agit de unknown . Cela suit étroitement la définition de la position d’Android.
    • halfOpened -La charnière du périphérique pliable est dans une position intermédiaire entre l’état ouvert et le point fermé. il y a un angle non plat entre des parties de l’écran flexible ou entre des panneaux d’écran physiques.
    • flat -L’appareil pliable est entièrement ouvert, l’espace d’écran présenté à l’utilisateur est plat.
    • flipped -L’appareil pliable est retourné avec les parties d’écran flexibles ou les écrans physiques en direction opposée.
    • unknown -La posture est inconnue, soit parce qu’elle est nouvelle, soit non prise en charge ou, dans le cas des cutout fonctionnalités, elle n’est pas remplie.

La propriété hinge

Parmi les trois types de fonctionnalités d’affichage, les cutoutfold types sont utilisés moins souvent. Vous utilisez déjà SafeArea pour éviter les cutout fonctionnalités et vous n’avez pas besoin d’éviter fold les fonctionnalités dans la mesure où l’affichage est continu. La hinge propriété a été ajoutée à pour MediaQuery vous aider à obtenir la charnière sans avoir à filtrer la displayFeatures liste. Affichez-le en tant que raccourci qui facilite la lecture de votre code. Il s’agit de l’implémentation dans DART :

DisplayFeature? get hinge {
    for (DisplayFeature e in displayFeatures) {
      if (e.type == DisplayFeatureType.hinge) return e;
    }
    return null;
  }

La hinge valeur est null si l’appareil n’a pas de charnière, ou si l’application n’est pas fractionnée et que la charnière ne chevauche pas notre application. Voici un exemple de savoir si l’écran disponible pour l’application a une charnière :

final hinge = MediaQuery.of(context).hinge;
if (hinge==null) {
    print('No hinge');
} else {
    print('Hinge is ${hinge.bounds.width} logical pixels wide');
}

Lorsque vous utilisez la hinge propriété, vous pouvez facilement adapter vos dispositions pour surface Duo, à l’aide du hinge , ce qui facilite encore la définition d’une mise en page qui s’adapte à surface Duo, mais également pour les tablettes et les ordinateurs de bureau.