Как выполнить метод, специфичный для платформы (Android), в ButtonOnClick () с помощью пользовательского средства визуализации Xamarin.Forms. - PullRequest
0 голосов
/ 14 ноября 2018

Введение:

Я начинаю с кода из:

https://github.com/xamarin/xamarin-forms-samples/tree/master/CustomRenderers/Entry/Android

для изучения пользовательских средств визуализации.Я делаю это, потому что есть код, который выполняется только на платформе Android.Позволяет называть это «androidMethod ()» и принадлежит к базе Android-кодов (не к общей библиотеке).Я заметил, что в большинстве примеров, которые я обнаружил, использовались customRenderers для внесения изменений в пользовательский интерфейс для конкретной платформы (как пример в ссылке), но я не собираюсь вносить никаких изменений в пользовательский интерфейс, скорее я пытаюсь поместить метод для конкретной платформы вметод Xamarin.Forms ButtonOnClick (), как показано в приведенном ниже коде.

Код ниже аналогичен коду, который вы найдете в MyEntryRenderer.cs по ссылке, но вы увидите, что он был изменен для применения ккнопка вместо записи.

MyButtonRenderer.cs:

using Xamarin.Forms.Platform.Android;
using Xamarin.Forms;
using CustomRenderer;
using CustomRenderer.Android;
using Android.Content;

[assembly: ExportRenderer(typeof(MyButton), typeof(MyButtonRenderer))]
namespace CustomRenderer.Android
{
    class MyButtonRenderer : ButtonRenderer
    {
        private Button androidButton;

        public MyButtonRenderer(Context context) : base(context)
        {
        }

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

            if (Control != null)
            {
                //I want to be able to do something like this:
                ButtonOnClick(androidMethod());
            }
        }
    }
}

Как получить androidMethod ();выполнить в этом контексте.Примеры, которые я нахожу, ограничены, поэтому, пожалуйста, постарайтесь ограничить свой ответ чем-то, что было бы совместимо с примером.Thankyou!

1 Ответ

0 голосов
/ 14 ноября 2018

если вы хотите выполнить метод для конкретной платформы, я бы использовал DepenencyService вместо пользовательского рендерера

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...