Tengo un ScrollView sobre AbsoluteLayout .. Necesito corregir la posición del indicador de actividad en el centro de la pantalla. Intenté seguir el código.

<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>

Y encuentro el resultado ya que está en el centro de ScrollView.

Intenté colocando el ActivityIndicator fuera del ScrollView simplemente le da una pantalla blanca como salida.

¿Cómo arreglo la posición de ActivityIndicator en el centro de la pantalla?

4
Mohammed Ameen 17 ene. 2018 a las 10:32

3 respuestas

La mejor respuesta

Como dijo @Vahid, si desea ActivityIndicator sobre ScrollView, debe colocar ambos dentro de AbsoluteLayout, de esta manera:

<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>

Tenga en cuenta que agregué un AbsoluteLayout adicional que funciona como una 'superposición de espera' solo en el ScrollView, no en toda la pantalla.

6
Oluwasayo Babalola 9 may. 2018 a las 15:41

Cree una página de cuadrícula con una fila y una columna. Defina tanto su ActivityIndicatorLayout como ScrollLayout para que estén en la fila 0 y en la columna 0. Agrego el contenido antes del indicador de actividad.

1
Christine 17 ene. 2018 a las 18:32

Puede usar Rg.Plugins.Popup
Diseña una página emergente con indicador de actividad y puedes mostrarla donde quieras.

0
Mayur Kerasiya 17 ene. 2018 a las 07:38
48295792