Elevazione di VisualElement in Android

Download Sample Scaricare l'esempio

Questo specifico della piattaforma Android viene usato per controllare l'elevazione, o l'ordine Z, degli elementi visivi nelle applicazioni destinate all'API 21 o successiva. L'elevazione di un elemento visivo determina l'ordine di disegno, con elementi visivi con valori Z superiori che occludare gli elementi visivi con valori Z inferiori. Viene utilizzato in XAML impostando la VisualElement.Elevation proprietà associata su un boolean valore:

<ContentPage ...
             xmlns:android="clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific;assembly=Xamarin.Forms.Core"
             Title="Elevation">
    <StackLayout>
        <Grid>
            <Button Text="Button Beneath BoxView" />
            <BoxView Color="Red" Opacity="0.2" HeightRequest="50" />
        </Grid>        
        <Grid Margin="0,20,0,0">
            <Button Text="Button Above BoxView - Click Me" android:VisualElement.Elevation="10"/>
            <BoxView Color="Red" Opacity="0.2" HeightRequest="50" />
        </Grid>
    </StackLayout>
</ContentPage>

In alternativa, può essere usato da C# usando l'API Fluent:

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.AndroidSpecific;
...

public class AndroidElevationPageCS : ContentPage
{
    public AndroidElevationPageCS()
    {
        ...
        var aboveButton = new Button { Text = "Button Above BoxView - Click Me" };
        aboveButton.On<Android>().SetElevation(10);

        Content = new StackLayout
        {
            Children =
            {
                new Grid
                {
                    Children =
                    {
                        new Button { Text = "Button Beneath BoxView" },
                        new BoxView { Color = Color.Red, Opacity = 0.2, HeightRequest = 50 }
                    }
                },
                new Grid
                {
                    Margin = new Thickness(0,20,0,0),
                    Children =
                    {
                        aboveButton,
                        new BoxView { Color = Color.Red, Opacity = 0.2, HeightRequest = 50 }
                    }
                }
            }
        };
    }
}

Il Button.On<Android> metodo specifica che questa specifica della piattaforma verrà eseguita solo in Android. Il VisualElement.SetElevation metodo , nello spazio dei Xamarin.Forms.PlatformConfiguration.AndroidSpecific nomi , viene usato per impostare l'elevazione dell'elemento visivo su un valore nullable float. Inoltre, il VisualElement.GetElevation metodo può essere usato per recuperare il valore di elevazione di un elemento visivo.

Il risultato è che l'elevazione degli elementi visivi può essere controllata in modo che gli elementi visivi con valori Z più elevati occudano gli elementi visivi con valori Z inferiori. Di conseguenza, in questo esempio viene eseguito il rendering del secondo Button sopra perché BoxView ha un valore di elevazione superiore:

VisualElement elevation screenshot