Tout d'abord, je voudrais m'excuser si je ne respecte pas les règles de SO, car c'est ma première question. Ce que j'essaie d'accomplir, c'est d'avoir une grille dans ma page. Le comportement devrait être équivalent à avoir un élément avec stretch = "aspectFit". Si la solution suggérée pouvait me permettre d'appliquer un ratio d'aspect donné au lieu d'un carré, ce serait un plus, car cela me permettrait de résoudre plusieurs situations dans le futur. Ou s'il pouvait être appliqué à n'importe quel élément de Layout, ce serait aussi bien.Existe-t-il un moyen de créer un GridLayout NativeScript avec un format d'image fixe?
La solution peut être aussi hacky que vous le souhaitez, et GridLayout peut être imbriqué de la façon dont vous avez besoin d'accomplir ceci.
J'ai déjà essayé de pirater comme ceci:
<GridLayout rows="*,auto,*" columns="*,auto,*" backgroundColor="green">
<Image row="1" col="1" src="~/Images/1px-black.png" stretch="aspectFit" width="100%"></Image>
<StackLayout row="1" col="1" orientation="vertical" backgroundColor="lightgray">
<Label text="Label 1" width="100%" height="25%" backgroundColor="red"></Label>
<Label text="Label 2" width="100%" height="25%" backgroundColor="green"></Label>
<Label text="Label 3" width="100%" height="25%" backgroundColor="blue"></Label>
<Label text="Label 4" width="100%" height="25%" backgroundColor="yellow"></Label>
</StackLayout>
</GridLayout>
Visuellement il a semblé fonctionner, mais le contenu du GridLayout n'a pas remplir apropriately
PS: Je viens de remarquer dans la exemple que j'ai choisi, l'élément de mise en page que j'essaie de rendre carré est le StackLayout imbriqué, mais c'est la même idée. J'ai besoin d'un moyen de faire un élément de mise en page imbriqué au carré.
Voulez-vous que JS s'exécute sur l'événement chargé? Si c'est le cas, c'est trivial à faire. Si vous le souhaitez en XML pur, cela n'est pas possible car rien ne contraint les valeurs Y à X (ou X à Y) intégrées dans la grille. – Nathanael
@Nathanael Je suis ouvert à toute solution.Je suis sur les premiers stades de mon développement, donc je pense que je pourrais faire face à presque n'importe quelle solution –
@Nathanael Je devrais aussi déclarer que je travaille sur une application Angular2. Peut-être que les événements ou le cycle de vie affectent la réponse –