для чего-то подобного я бы обернул внешний элемент
<ScrollView>
<StackLayout>
<!-- Main form component wrapper -->
<!-- Green component wrapper -->
</StackLayout>
</ScrollView>
Это сделает ваш макет прокручиваемым, и элементы будут размещены друг над другом без указания фиксированного размера.
Для основной области формы я бы использовал макет примерно так
<GridLayout rows="*" columns="*">
<!-- this stackLayout is the lefthand side of form -->
<StackLayout row="0" col="0">
<TextField ... />
<TextField ... />
</StackLayout>
<!-- this stackLayout is the righthand side of form -->
<StackLayout row="0" col="1">
<Switch .../>
<Birthday stuff... />
</StackLayout>
</GridLayout>
Это разделит верхнюю область на два столбца и сложит поля друг над другом.
Зеленая область, вероятно, самая простая, как одна StackLayout
с backgroundColor="someGreenColor"
, а затем с использованием GridLayout
или AbsoluteLayout
Я бы кодировал в три поля большое количество css.
Надеюсь, это поможет!