Проблема в том, что вы вложили 2 вида прокрутки с одинаковым направлением друг в друга (ScrollView
и ListView
) без фиксированной высоты.
Решение, если вы хотите ListView, чтобы сжать его содержимое: Удалить ListView
Существует BindableLayout
, который можно использовать с StackLayout
и другими макетами. (https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/layouts/bindable-layouts)
<AbsoluteLayout HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
<ScrollView AbsoluteLayout.LayoutFlags="All" AbsoluteLayout.LayoutBounds="0,0,1,1">
<StackLayout >
<Label Text="Hallo"/>
<StackLayout BindableLayout.ItemsSource="{Binding .}" BackgroundColor="Green">
<BindableLayout.ItemTemplate>
<DataTemplate>
<Label Text="{Binding .}"/>
</DataTemplate>
</BindableLayout.ItemTemplate>
</StackLayout>
<Label Text="Hallosdf"/>
</StackLayout>
</ScrollView>
</AbsoluteLayout>

Решение, если вы хотите, чтобы ListView растягивался: удалите Scrollview
Метка Hallosdf
будет отображаться под ListView
, и будет прокручиваться только ListView. Кстати: вам не нужно оборачивать каждый вид в StackLayout
. Старайтесь избегать ненужных раскладок, чтобы добиться максимальной производительности. Если StackLayout
является единственным макетом в вашем AbsoluteLayout
, вы также можете избавиться от AbsoluteLayout
.
<AbsoluteLayout HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
<StackLayout AbsoluteLayout.LayoutFlags="All" AbsoluteLayout.LayoutBounds="0,0,1,1">
<Label Text="Hallo"/>
<ListView x:Name="listView" BackgroundColor="Green" VerticalOptions="FillAndExpand"
ItemsSource="{Binding .}" >
</ListView>
<Label Text="Hallosdf"/>
</StackLayout>
</AbsoluteLayout>
