我在解决方案中有两个项目:一个是库项目,后一个是应用程序的主项目。
库项目包含:共享库项目,android和iOS,类似于应用程序的主项目。
库项目将包含我可以重用的所有公共代码。
在共享库中的库项目中,我有一个扩展StackLayout的自定义控件,特定于平台的Renderer将扩展自定义控件。
如果我将所有代码都放到应用程序的主项目中,则Renderer会调用并能够执行我为控件编写的触摸事件。另一方面,如果代码被移动到库项目,则控件不再具有触摸事件,因为在android部分中编写的渲染器没有得到调用。
有谁知道如何让渲染器被调用?
答案 0 :(得分:1)
除非使用
之类的预处理程序指令,否则无法在共享代码中编写自定义渲染器public class CustomNavigationRenderer : NavigationRenderer
{
protected override void OnLayout(bool changed, int l, int t, int r, int b)
{
base.OnLayout(changed, l, t, r, b);
//my own code
也许你正在扩展错误的课程,如果你发布你的代码我们可以帮助更好;例如,我写了一个代码来改变Android上的导航栏背景,如此
resolve
我必须扩展Xamarin.Forms.Platform.Android.NavigationRenderer并覆盖OnLayout方法。希望对你有帮助。