我需要在共享的Xamarin.Forms代码之外访问由Xamarin.Forms创建的视图。
如何在Xamarin.Forms中设置Android id属性?
我需要在共享的Xamarin.Forms代码之外访问由Xamarin.Forms创建的视图。
如何在Xamarin.Forms中设置Android id属性?
获取Android id的一种方法是通过自定义渲染器。例如,如果涉及的视图是Xamarin.Forms.Editor,则可以按照以下方式将自定义渲染器添加到应用程序中:
首先,在您的Xamarin.Forms项目中,添加一个派生自您想要从中获取id的视图的类:
namespace MyApp
{
public class CustomEditor : Editor
{
}
}
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
}
}
通过自定义渲染器,您现在可以访问与 Xamarin Forms 视图相关联的底层 Android 部件。这意味着您也可以获取 Android .id 属性。
请注意: