Search code examples
c#xamarinuwpscrollviewstacklayout

StackLayout within ScrollView, wrong control focus UWP


I have following ContentPage

<ContentPage>
<ContentPage.Content>
    <ScrollView>
        <StackLayout>
            <Editor Text="description" FontSize="20" FontAttributes="Bold" Margin="10" HeightRequest="200" HorizontalOptions="FillAndExpand"/>
            <Editor Text="description" FontSize="20" FontAttributes="Bold" Margin="10" HeightRequest="200" HorizontalOptions="FillAndExpand"/>
            <Editor Text="description" FontSize="20" FontAttributes="Bold" Margin="10" HeightRequest="200" HorizontalOptions="FillAndExpand"/>
            <Editor Text="description" FontSize="20" FontAttributes="Bold" Margin="10" HeightRequest="200" HorizontalOptions="FillAndExpand"/>
            <Editor Text="description" FontSize="20" FontAttributes="Bold" Margin="10" HeightRequest="200" HorizontalOptions="FillAndExpand"/>
            <Editor Text="description" FontSize="20" FontAttributes="Bold" Margin="10" HeightRequest="200" HorizontalOptions="FillAndExpand"/>
            <Editor Text="description" FontSize="20" FontAttributes="Bold" Margin="10" HeightRequest="200" HorizontalOptions="FillAndExpand"/>
            <Editor Text="description" FontSize="20" FontAttributes="Bold" Margin="10" HeightRequest="200" HorizontalOptions="FillAndExpand"/>
            <Editor Text="description" FontSize="20" FontAttributes="Bold" Margin="10" HeightRequest="200" HorizontalOptions="FillAndExpand"/>
            <Editor Text="description" FontSize="20" FontAttributes="Bold" Margin="10" HeightRequest="200" HorizontalOptions="FillAndExpand"/>
            <Editor Text="description" FontSize="20" FontAttributes="Bold" Margin="10" HeightRequest="200" HorizontalOptions="FillAndExpand"/>
            <Editor Text="description" FontSize="20" FontAttributes="Bold" Margin="10" HeightRequest="200" HorizontalOptions="FillAndExpand"/>
            <Editor Text="description" FontSize="20" FontAttributes="Bold" Margin="10" HeightRequest="200" HorizontalOptions="FillAndExpand"/>
            <Editor Text="description" FontSize="20" FontAttributes="Bold" Margin="10" HeightRequest="200" HorizontalOptions="FillAndExpand"/>
            <Editor Text="description" FontSize="20" FontAttributes="Bold" Margin="10" HeightRequest="200" HorizontalOptions="FillAndExpand"/>
            <Editor Text="description" FontSize="20" FontAttributes="Bold" Margin="10" HeightRequest="200" HorizontalOptions="FillAndExpand"/>
            <Editor Text="description" FontSize="20" FontAttributes="Bold" Margin="10" HeightRequest="200" HorizontalOptions="FillAndExpand"/>
            <Editor Text="description" FontSize="20" FontAttributes="Bold" Margin="10" HeightRequest="200" HorizontalOptions="FillAndExpand"/>
            <Editor Text="description" FontSize="20" FontAttributes="Bold" Margin="10" HeightRequest="200" HorizontalOptions="FillAndExpand"/>
            <Editor Text="description" FontSize="20" FontAttributes="Bold" Margin="10" HeightRequest="200" HorizontalOptions="FillAndExpand"/>
            <Editor Text="description" FontSize="20" FontAttributes="Bold" Margin="10" HeightRequest="200" HorizontalOptions="FillAndExpand"/>
        </StackLayout>
    </ScrollView>
</ContentPage.Content>
</ContentPage>

Whem I am running this under UWP there is strange behavior: If I scroll down a bit and try to hit e.g. 6th Editor, I get focus on 3rd Editor control.
When I am on the top of scroll viewer I get focus to correct Editor but If I scroll a bit I get wrong Editor focused.
It looks like I can reach only first X Editors visible on the top of ScrollView. Any ideas?


Solution

  • I guess you are using Xamarin.Forms. This is bug in framework for UWP platform.

    You can find this issue in https://github.com/xamarin/Xamarin.Forms/issues/11106.

    Please upgrade framework to 4.7.0.1080. This works for me.