Adaptabilité des composants sur mobile et tablette

Étiquetté : , ,

  • Adaptabilité des composants sur mobile et tablette

    Posté par Alexandre sur 4 mars 2022 à 17h15

    Bonjour à tous

    J’ai créé des composants afin de les réutiliser sur différents devices mobile ou tablette ou responsive. Malheureusement la “densité” de pixels entre une app mobile et une app tablette est différente ce qui donne des composants trop petits sur mobile. Dans les captures suivantes mon composant contient un textInput qui, comparé à un contrôle textinput seul est équivalent (dimensions/police). Par contre sur mobile, les dimensions doivent être plus grandes pour avoir un aspect à des dimensions plus correctes sur cette taille d’écran. Mais comme mon composant n’est pas agrandi automatiquement ca fait trop petit [je vais vous perdre dans mes explications lol]

    Ma question est donc la suivante : Quelle(s) astuce(s) me proposez vous pour pousser le responsive jusqu’à l’adaptation des dimensions / polices dans mes composants lorsqu’on est sur mobile ?
    Merci

    PostID=Cng1lq2mFq0ugdx

    R3dKap a répondu Il y a 7 mois, 3 semaines 1 Membre · 4 Réponses
  • 4 Réponses
  • Didier Gbenou

    Membre
    5 mars 2022 à 23h10

    Salut @Alexandre.

    Pour changer les dimensions et autres proprietes en fonction de la dimension de ton écran, la clé reside dans la formule Parent.Size.

    Juste quelques petites infos a propos:

    1) Désactiver l’option Scale to fit

    2) Utiliser la formule Parent.Size pour changer tes dimensions en fonction de la taille de l’écran.

    https://www.youtube.com/watch?v=1o2L0DADzKQ

    https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps/create-responsive-layout

    CommentID=phSarXEdgaoIckd, PostID=Cng1lq2mFq0ugdx

  • Alexandre

    Membre
    6 mars 2022 à 8h20

    Merci pour cette suggestion.

    Effectivement je crois bien que c’est la solution, je dirais même plus, il ne me parait pas nécessaire de désactiver le ‘Scale to fit’ :

    L’usage de la propriété Size des écrans et en la comparant à l’une des dimensions énumérée par ScreenSize fonctionne partout.

    Ainsi, App.ActiveScreen.Size <= ScreenSize.Medium indique un écran qui serait plutôt mobile voir tablette en portrait.

    CommentID=MqO2hyIqS55odXk, PostID=Cng1lq2mFq0ugdx

  • R3dKap

    Membre
    6 mars 2022 à 10h44

    @Alexandre @Didier ça m’a l’air un peu plus tricky que ça…

    D’après cet article fort intéressant, il semblerait que le bon dimensionnement des caractères à l’écran dépende de la manière dont l’application est créée :

    En gros, pour assurer un bon rendu quelque soit le format d’écran, il faut créer une application totalement vide (sans partir d’une source de données). Ensuite, la désactivation du Scale to fit est capitale pour la création d’une application responsive car elle garantit que cette dernière occupera tout l’espace disponible sur l’écran quelque soit sa taille et son orientation. Dans le cas contraire, le rapport largeur/hauteur est figé et tu peux donc te retrouver avec des bandes noires en haut et en bas de l’écran s’il na pas le même rapport que celui de ton application.

    Voilou…

    CommentID=am463nkBFT8LmpI, PostID=Cng1lq2mFq0ugdx

  • R3dKap

    Membre
    6 mars 2022 à 10h46

    D’ailleurs j’ai fait le test :

    • j’ai créé une application vide

    • j’ai désactivé le Scale to fit

    • j’ai mis un text input sur l’écran

    • j’ai mis un text input dans un composant que j’ai aussi mis sur l’écran

    Au lancement de l’application sur mon mobile j’ai bien des tailles de caractères identiques que ce soit dans le composant ou directement sur l’écran…

    CommentID=QatpsMVI2urE9lm, PostID=Cng1lq2mFq0ugdx

Connectez-vous pour répondre.