Xamarin Forms - кнопка Android, использующая относительный макет из Ресурсов / Макет - PullRequest
0 голосов
/ 04 июня 2019

Visual Studio 2017 Итак, у меня есть приложение, IOS и Android, которое использует Xamarin Forms. Я загрузил файл RelativeLayout в ресурсы / Layouts.

Есть ли способ использовать этот макет в программе визуализации пользовательских кнопок?

Все наши формы находятся в проекте Xamarin, поэтому я не могу просто включить его во фрагмент.

Я порчу мертвую лошадь, пытаясь обмануть ее, используя средство визуализации клиентов?

1 Ответ

0 голосов
/ 05 июня 2019

Создайте средство визуализации для вашей пользовательской кнопки.Затем замените его своим собственным макетом:

[assembly: ExportRenderer(typeof(CustomButton), typeof(CustomButtonRenderer))]
namespace App.Droid
{
    public class CustomButtonRenderer : ViewRenderer<CustomButton, Android.Views.View>
    {
        Context _context;
        public CustomButtonRenderer(Context context) : base(context)
        {
            _context = context;
        }

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

            if (Control == null)
            {
                SetNativeControl(getView());
            }
        }

        Android.Views.View getView()
        {
            return LayoutInflater.From(_context).Inflate(Resource.Layout.custom_layout, null);
        }
    }
}

Наконец вы можете использовать пользовательский элемент управления в XAML, например:

<StackLayout>
    <local:CustomButton />
</StackLayout>
...