VisualElement Elevation sur Android

Télécharger l’exemple Télécharger l’exemple

Cette plateforme Android spécifique est utilisée pour contrôler l’élévation, ou l’ordre Z, des éléments visuels sur les applications qui ciblent l’API 21 ou ultérieure. L’élévation d’un élément visuel détermine son ordre de dessin, les éléments visuels avec des valeurs Z plus élevées obludant les éléments visuels avec des valeurs Z inférieures. Il est consommé en XAML en définissant la VisualElement.Elevation propriété jointe sur une boolean valeur :

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

Vous pouvez également la consommer à partir de C# à l’aide de 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 }
                    }
                }
            }
        };
    }
}

La Button.On<Android> méthode spécifie que cette plateforme spécifique s’exécutera uniquement sur Android. La VisualElement.SetElevation méthode, dans l’espace Xamarin.Forms.PlatformConfiguration.AndroidSpecific de noms, est utilisée pour définir l’élévation de l’élément visuel sur un nullable float. En outre, la VisualElement.GetElevation méthode peut être utilisée pour récupérer la valeur d’élévation d’un élément visuel.

Le résultat est que l’élévation des éléments visuels peut être contrôlée de sorte que les éléments visuels avec des valeurs Z plus élevées obstruent les éléments visuels avec des valeurs Z inférieures. Par conséquent, dans cet exemple, la seconde Button est affichée au-dessus du BoxView , car elle a une valeur d’élévation plus élevée :

Capture d’écran d’élévation de VisualElement