Интересно, что ячейки, которые вы показали в вашей демонстрации, правильно выровнены в соответствии с вашими спецификациями потока. Использование GridLayout
было бы возможным , но не совсем идеально. Для GridLayout
потребуется подсчет и указание всех его строк, что раздражает, и оно также заставит своих дочерних элементов соответствовать ему, а не расширяться на основе дочерних элементов (например, FlexboxLayout
или StackLayout
).
Вместо этого просто добавьте ширину к каждому элементу. Два самых простых способа сделать это - обернуть каждый элемент:
<FlexboxLayout backgroundColor="pink" flexWrap="wrap" justifyContent="center">
<StackLayout width="33%" *ngFor="let n of list">
<ns-home-button name="{{ n.name }}"></ns-home-button>
</StackLayout>
</FlexboxLayout>
или изменить компонент spe c:
<FlexboxLayout backgroundColor="pink" flexWrap="wrap" justifyContent="center">
<ns-home-button width="33%" *ngFor="let n of list" name="{{ n.name }}"></ns-home-button>
</FlexboxLayout>
@Input() width: string;
<FlexboxLayout [width]="width" ...>
...
</FlexboxLayout>