Xamarin Forms:如何在Scrollview的屏幕中心修复活动指示器

Moh*_*een 4 xaml uiscrollview xamarin xamarin.forms

我有一个ScrollView结束AbsoluteLayout..我需要在屏幕中心修复ActivityIndi​​cator的位置。我尝试了以下代码。

<ScrollView>
    <AbsoluteLayout VerticalOptions="FillAndExpand"
                    HorizontalOptions="FillAndExpand">
        <StackLayout BackgroundColor="White"
                     Padding="50,20,50,20"
                     Spacing="5"
                     AbsoluteLayout.LayoutBounds="0,0,1,1"
                     AbsoluteLayout.LayoutFlags="All"> 
            // have set of elements..
        </StackLayout>
        <ActivityIndicator IsVisible="{Binding IsBusy}"
                           IsRunning="{Binding IsBusy}"
                           Color="Black"
                           AbsoluteLayout.LayoutBounds="0.5,0.5,0.1,0.1"
                           AbsoluteLayout.LayoutFlags="All"/>
    </AbsoluteLayout>
</ScrollView>
Run Code Online (Sandbox Code Playgroud)

我发现结果位于的中心ScrollView

我尝试将其放置在ActivityIndicator外面,ScrollView它仅给出白色屏幕作为输出。

如何确定ActivityIndicator屏幕中央的位置?

Die*_*uza 6

就像@Vahid所说的,如果要在ActivityIndicator上方ScrollView,则需要将两者都放在AbsoluteLayout中,如下所示:

<AbsoluteLayout VerticalOptions="FillAndExpand"
                HorizontalOptions="FillAndExpand">
    <ScrollView AbsoluteLayout.LayoutBounds="0,0,1,1"
                AbsoluteLayout.LayoutFlags="All"
                VerticalOptions="FillAndExpand"
                HorizontalOptions="FillAndExpand">
        <StackLayout BackgroundColor="White"
                     Padding="50,20,50,20"
                     Spacing="5">
            // Your stuff goes here
        </StackLayout>
    </ScrollView>
    <AbsoluteLayout BackgroundColor="#22000000"
                    AbsoluteLayout.LayoutBounds="0.5,0.5,1,1"
                    AbsoluteLayout.LayoutFlags="All"
                    IsVisible="{Binding IsBusy}">
        <ActivityIndicator Color="Black"
                           AbsoluteLayout.LayoutBounds="0.5,0.5,0.1,0.1"
                           AbsoluteLayout.LayoutFlags="All"
                           IsVisible="True"
                           IsRunning="True"/>
    </AbsoluteLayout>
</AbsoluteLayout>
Run Code Online (Sandbox Code Playgroud)

请注意,我AbsoluteLayoutScrollView唯一的地方(而不是整个屏幕)添加了一个类似于“等待叠加”的功能。