rob*_*r01 7 c# android xamarin xamarin.forms
我需要在共享的Xamarin.Forms代码之外访问由Xamarin.Forms创建的视图.
如何在Xamarin.Forms中设置android id属性?
获取 Android id 的一种方法是通过自定义渲染器。例如,如果相关视图是 Xamarin.Forms.Editor,您可以向应用程序添加自定义渲染器,如下所示:
首先,在您的 Xamarin.Forms 项目中,添加一个派生自您想要从中获取 id 的视图的类:
namespace MyApp
{
public class CustomEditor : Editor
{
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,此类不会添加任何新成员,它只是定义一个新类型,我们需要将其与自定义渲染器关联。
然后,在您的 Xamarin Android 项目中,添加自定义渲染器并将其与您的自定义视图类型关联:
using System;
using MyApp;
using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;
[assembly: ExportRenderer(typeof(CustomEditor), typeof(CustomEditorRenderer))]
namespace MyApp.Android
{
class CustomEditorRenderer : EditorRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.Editor> e)
{
base.OnElementChanged(e);
int androidId = this.Id; // android widget id
Guid xamarinId = e.NewElement.Id; // xamarin view id
}
}
Run Code Online (Sandbox Code Playgroud)
在该自定义渲染器中,您现在可以访问与 Xamarin Forms 视图关联的底层 Android 小部件。这意味着您也可以获取 Android .id 属性。
请注意: