Udostępnij za pośrednictwem


Podniesienie poziomu elementu VisualElement w systemie Android

Ta platforma systemu Android służy do kontrolowania podniesienia uprawnień lub kolejności Z elementów wizualnych w aplikacjach przeznaczonych dla interfejsu API 21 lub nowszego. Podniesienie uprawnień elementu wizualizacji określa kolejność rysunku, a elementy wizualne z wyższymi wartościami Z occluding elementów wizualnych o niższych wartościach Z. Jest on używany w języku XAML przez ustawienie dołączonej VisualElement.Elevationboolean właściwości na wartość:

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

Alternatywnie można go używać z poziomu języka C# przy użyciu płynnego interfejsu API:

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

Metoda Button.On<Android> określa, że ta platforma będzie działać tylko w systemie Android. Metoda VisualElement.SetElevation w Xamarin.Forms.PlatformConfiguration.AndroidSpecific przestrzeni nazw służy do ustawiania podniesienia uprawnień elementu wizualizacji na wartość null.float Ponadto VisualElement.GetElevation metoda może służyć do pobierania wartości podniesienia uprawnień elementu wizualizacji.

Wynikiem jest możliwość kontrolowania podniesienia uprawnień elementów wizualnych w taki sposób, aby elementy wizualne z wyższymi wartościami Z occlude elementów wizualnych z niższymi wartościami Z. W związku z tym w tym przykładzie drugi Button jest renderowany powyżej BoxView elementu , ponieważ ma wyższą wartość podniesienia:

Zrzut ekranu przedstawiający podniesienie uprawnień elementu VisualElement