【问题标题】:Xamarin.Forms + Custom Renderers vs. Xamarin.iOS/Xamarin.AndroidXamarin.Forms + 自定义渲染器与 Xamarin.iOS/Xamarin.Android
【发布时间】:2017-01-07 06:49:01
【问题描述】:

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

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

正如我所提到的,我目前倾向于将自定义呈现器与 Xamarin.Forms 一起使用的选项。我可以从那些使用过一种或(最好)两种选择的人那里获得一些见解吗?

【问题讨论】:

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


    【解决方案1】:

    我主要使用 Xamarin.Forms。对于正确类型的应用程序(嗯,类似于“表单”的应用程序),它运行良好。

    编写自定义渲染器并不难,但不幸的是,文档并不是那么好。根据您所做的事情,有时在本机控件和表单布局引擎之间进行转换可能会有些棘手。但是,一旦您掌握了窍门,它就会变得有意义,而且现在代码是开源的,您可以窥探内部以了解“内置”控件是如何工作的。

    有多种扩展可以添加更多控件。有些是免费和开源的,例如 XLabs.Forms。所以你需要的控件可能已经存在了。

    您可以使用 TapGestureRecognizer 之类的机制将 Image 或 Label 转换为按钮,所以仅仅因为内置的 Forms Button 确实非常缺乏可定制性,您有时可以找到其他方法来获得相同的效果并且仍然留在纯 Xamarin.Forms 中。

    希望有帮助!

    【讨论】:

    • 谢谢,我不知道 Xamarin 有扩展。
    • 不能再同意了!说得好@DavidS
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2017-10-01
      • 2016-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-29
      相关资源
      最近更新 更多