Xamarin.Forms + Custom Renderers vs. Xamarin.iOS / Xamarin.Android

时间:2016-08-30 20:41:26

标签: xamarin.ios xamarin.android xamarin.forms cross-platform

我最近开始在项目中使用Xamarin.Forms。与文档中提到的一样,它非常适合原型设计。但是,我真的开始注意到UI设计的共享概念的局限性。特别是,无法设置自定义按钮内容(例如图像)的情况更加严重。我确定会有几个实例,我想改变控件的工作方式。

我看到它的方式,我可以采取两种方式。一,继续使用Xamarin.Forms并使用自定义渲染器。考虑到我仍然希望我的UI代码可以共享,但也可以从基本的Xamarin.Forms控件进行自定义,我倾向于这个选项。二,使用原生的Xamarin项目(Xamarin.iOS,Xamarin.Android)。这将使我完全控制每个平台的UI,但这也意味着需要维护更多的代码。

就像我提到的,我目前支持使用Xamarin.Forms自定义渲染器的选项。我可以从那些使用过一种或(最好)两种选择的人那里获得一些见解吗?

2 个答案:

答案 0 :(得分:6)

我主要使用Xamarin.Forms。对于正确类型的应用程序(那些,类似“表单”),它的效果非常好。

编写自定义渲染器并不难,但不幸的是,文档并不那么好。根据您正在做的事情,有时在本机控件和Forms布局引擎之间进行转换会有点棘手。然而,一旦掌握了它,它就有意义了,现在代码是开源的,你可以偷看内部看看“内置”控件是如何工作的。

有各种扩展可以添加更多控件。有些是免费的开源软件,比如XLabs.Forms。所以你需要的控制可能就在那里。

您可以使用TapGestureRecognizer等机制将图像或标签转换为按钮,因为内置的表单按钮确实缺乏可自定义性,您有时可以找到其他方法来获得相同的效果留在纯Xamarin.Forms。

希望有所帮助!

答案 1 :(得分:2)

XamarinForms适用于不需要使用该设备的大量特异性的示例应用程序。

对于复杂的应用程序,我建议您从Xamarin Ios和Android开始。 这需要更多的时间来掌控,但你会发现它更加宽容