繁体   English   中英

如何使用Xamarin.Forms自定义渲染器在ButtonOnClick()中执行特定于平台(Android)的方法。

How to execute a platform (Android) specific method within a ButtonOnClick() using a Xamarin.Forms custom renderer.

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

介绍:

我从以下代码开始:

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

研究自定义渲染器。 我这样做是因为有仅在android平台上执行的代码。 让我们将其称为“ androidMethod()”,它属于Android代码库(而不是共享库)。 我注意到,我发现的大多数示例都使用了customRenderers来进行特定于平台的UI修改(如链接中的示例),但是我打算不对UI进行任何更改,而是尝试在其中放置特定于平台的方法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(); 在这种情况下执行。 我发现的示例数量有限,因此请尝试将您的回答限制为与示例兼容。 谢谢!

1 个回复

如果要执行特定于平台的方法,我将使用DepenencyService而不是Custom Renderer

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM