xamarin - добавить свойство для создания непрозрачного фона в пользовательском ActivityIndicator - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть собственное изображение индикатора Activiti с индивидуальным рендерером для каждой платформы (iOS и Android). Общий класс:

public class MySpin : Image
{
    public static readonly BindableProperty AnimateProperty = BindableProperty.Create(
        propertyName: "Animate",
        returnType: typeof(bool),
        declaringType: typeof(MazSpinner),
        defaultValue: false);

    public bool Animate
    {
        get { return (bool)GetValue(AnimateProperty); }
        set { SetValue(AnimateProperty, value); }
    }
}

Позволяет представить изображение в качестве загрузки, когда установлено свойство Animate. Можно установить прозрачный и непрозрачный фон, который будет покрывать контент, где называется MySpin?

Спасибо за помощь.

1 Ответ

0 голосов
/ 15 апреля 2019

Да, это возможно.

Renderer: Вы можете получить состояние Animate в Renderer, а затем делать то, что вы хотите.

protected override void OnElementChanged(ElementChangedEventArgs<Image> e)
{
    base.OnElementChanged(e);

    var customImage = e.NewElement as MySpin;
    if (customImage.Animate == true)
    {
        Console.WriteLine("true");
        Control.Alpha = 0; //transparent 
    }
    else
    {
        Control.Alpha = 1;// opaque 
        Console.WriteLine("false");
    }
}
...