Xamarin.Forms 4.0 发布,进入 Shell 时代

h4cd
 h4cd
发布于 2019年05月23日
收藏 6

Xamarin.Forms 4.0 发布了,这是一个主要版本,带来了一些重大变化,包括 Shell 正式版、默认启用 Android 快速渲染器、统一图像源类型与控制 Tab 顺序提高便捷性。

Shell 正式推出

2018 年 12 月在 Microsoft Connect() 上发布的 Shell 预览版现在已经正式集成在 Xamarin.Forms 4.0 中,从表面上看,Shell 提供了一种非常简单的语法来建立应用程序的弹出菜单和标签菜单。除了现有的导航服务之外,它还引入了强大的基于路由的 URI 导航服务。

此外,Shell 更加强大的地方在于底层,所有渲染器都实现了“快速渲染器”模式,数据模板和渲染器可以轻松扩展所有内容。这个新架构为未来的 Xamarin.Forms 开发奠定了基础,可以实现更具表现力的动画、过渡与交互。

快速开始使用 Shell 可以使用 Visual Studio 2019 中的新 Shell 模板,有关 Shell 的更多具体信息查看:

默认启用 Android 快速渲染器

2.4.0 版本中为 Button、Image 和 Label 引入了 Android 快速渲染器以大幅减少渲染这些控件所需的视图组数量,事实证明,这种模式与预期的一样有效,并且它们现在已经成为 Shell 实现的渲染器的新性能标准。

所以在此版本中,现在默认启用 Android 快速渲染器。如果需要继续使用旧式渲染器,只需要在 MainActivity.cs 中添加一项标志以选择加入旧式渲染器:

global::Xamarin.Forms.Forms.SetFlags("UseLegacyRenderers");

统一图像源

不同控件中的 icon 和图像源并未都实现相同的类型,3.5.0 版本中引入了 FontImageSource,它使得装饰应用变得非常容易和有趣,但是却无法在任何地方使用。不过此版本所有地方都实现了 ImageSource,所以现在可以在任何地方使用 FontImageSource、嵌入式资源、文件与 URI。

Button.Image // from FileImageSource
MenuItem.Icon // from FileImageSource
NavigationPage.TitleIcon // from FileImageSource 
Page.BackgroundImage // from string
Page.Icon // from FileImageSource
Slider.ThumbImage // from FileImageSource

提高便捷性

Xamarin.Forms 是一个原生的跨平台框架,这意味着开发者可以很方便地得到原生辅助功能支持,此版本通过直接在 Xamarin.Forms 中控制焦点顺序,进一步提高了操作便捷性。比如当你从一个页面导航到另一个页面时,屏幕阅读器需要知道哪个元素处于焦点地位,现在为了执行这一操作,可以在 VisualElement 上设置 TabIndex 以控制焦点顺序。

<Label AutomationProperties.IsInAccessibleTree="false" 
               Text="Turn on your screen reader and swipe between elements. The elements should be read in ascending order. It should *not* read Skip. It should *not* read this text." />
<Label TabIndex="0" Text="This will be read first and have focus"/>
<Button TabIndex="1" Text="Next Focus"/>

发布公告:

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:Xamarin.Forms 4.0 发布,进入 Shell 时代
加载中

精彩评论

s
sikele2237

引用来自“liyong2”的评论

不是很成熟
比flutter,rn之流成熟多了
liyong2
liyong2
不是很成熟
百小僧
百小僧
越来越强大。
变形精怪
这么好的东西 值得尝试

最新评论(12

s
sikele2237

引用来自“liyong2”的评论

不是很成熟
比flutter,rn之流成熟多了
水溶C100
水溶C100
东西是好东西。。但是推广做的不太好。。
开发一次生成其他平台APP,这样不是打了别的人饭碗。。
robortly
robortly

引用来自“liyong2”的评论

不是很成熟
已经用了4年了,相当的成熟了的。欢迎交流...:bowtie:
薯粉1Q84
薯粉1Q84
这玩意儿还有人用?
二进制艺术
二进制艺术
做外包,用着不错
boogoogle
boogoogle
快来把flutter截胡
liyong2
liyong2
不是很成熟
麦壳饼
麦壳饼
强大
百小僧
百小僧
越来越强大。
返回顶部
顶部