Elevação do VisualElement no Android
Esse específico da plataforma Android é usado para controlar a elevação, ou ordem Z, de elementos visuais em aplicativos direcionados à API 21 ou superior. A elevação de um elemento visual determina sua ordem de desenho, com elementos visuais com valores Z mais altos ocluindo elementos visuais com valores Z mais baixos. Ele é consumido em XAML definindo a propriedade anexada VisualElement.Elevation
como um boolean
valor:
<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>
Como alternativa, ele pode ser consumido do C# usando a API fluente:
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 }
}
}
}
};
}
}
O Button.On<Android>
método especifica que esse específico da plataforma só será executado no Android. O VisualElement.SetElevation
método, no Xamarin.Forms.PlatformConfiguration.AndroidSpecific
namespace, é usado para definir a elevação do elemento visual para um valor nulo float
. Além disso, o VisualElement.GetElevation
método pode ser usado para recuperar o valor de elevação de um elemento visual.
O resultado é que a elevação dos elementos visuais pode ser controlada para que os elementos visuais com valores Z mais altos ocluam os elementos visuais com valores Z mais baixos. Portanto, neste exemplo, o segundo Button
é renderizado acima de porque BoxView
tem um valor de elevação mais alto: