Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6536558
  • 博文数量: 915
  • 博客积分: 17977
  • 博客等级: 上将
  • 技术积分: 8846
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-26 09:59
个人简介

一个好老好老的老程序员了。

文章分类

全部博文(915)

文章存档

2022年(9)

2021年(13)

2020年(10)

2019年(40)

2018年(88)

2017年(130)

2015年(5)

2014年(12)

2013年(41)

2012年(36)

2011年(272)

2010年(1)

2009年(53)

2008年(65)

2007年(47)

2006年(81)

2005年(12)

分类: Android平台

2017-10-21 21:19:28

随着我们继续追求稳定性和性能,我们很高兴获得您对Xamarin.Forms 2.3.5的第一个预发布的反馈。 本次发布包含超过130种修复和增强功能,我想强调一下我们最为您的探索:快速渲染器,ListView增强功能和macOS预览!

Android的快速渲染器

快速渲染器背后的概念非常简单:通过平坦化控制嵌套来减少通货膨胀和降低成本。简单几乎总是表现更好!我们在第一批优化渲染器中提供按钮,图像和标签。使用它,什么都不做;它们在这个预发行版中默认启用。

我们的初步测试可以提高2x速度的改进,以便使用这些控件进行查看。当大量滚动数千行时,使用这些控件的单元格的大ListView滚动显然更平滑和恢复得更快。很清楚,并不是真正的惊喜,硬件,操作系统版本以及视图的复杂性都是影响您的结果的重要因素。

加入我们在论坛上的表演讨论,让我们知道你的结果。我们还要求XAML布局贡献来建立我们的性能测试套件。我们很乐意参与!

我们有更多的工作要对Android和iOS的剩余控件执行此重构,但我们很高兴分享我们迄今为止所拥有的功能。

ListView增强功能

我们继续削减业绩表现。 默认情况下,Android上的快速滚动已启用,可能会使用“特定平台”设置。

点击(此处)折叠或打开

  1. listView.On<Android>().SetIsFastScrollEnabled(true);
如果您正在使用像我这样的共享项目,并且与Android进行命名空间冲突,那么这是一个很好的解决方法:

点击(此处)折叠或打开

  1. using Platform = Xamarin.Forms.PlatformConfiguration;
  2. ...
  3. listView.On<Platform::Android>().SetIsFastScrollEnabled(true);
使用FastScrollEnabled,您现在可以使用Section Indexes。
Android不是ListView爱的唯一受益者。 iOS和UWP获得了十几个更新和修复,以解决性能,回收和报告的内存泄漏。


macOS预览

我们知道许多人一直在关注我们的MacOS后端的Xamarin.Forms从公共分支的进度和建设。 今天,我们希望每个人都能给予这个预览,并提供反馈。 以下是您需要开始的基础知识:

  1. 将Mac Cocoa App项目添加到您的Xamarin.Forms解决方案,并将其设置为启动项目
  2. 将项目引用添加到您的共享项目或PCL
  3. 导入任何平台特定的资源,如图像或字体
  4. 将此预发行版NuGet添加到所有项目和PCL
  5. 更新AppDelegate.cs
  6. 运行!

这里有一个模板AppDelegate.cs给你一个跳转开始:

点击(此处)折叠或打开

  1. [Register("AppDelegate")]
  2. public class AppDelegate : FormsApplicationDelegate
  3. {
  4.     NSWindow _window;
  5.     public AppDelegate()
  6.     {
  7.         var style = NSWindowStyle.Closable | NSWindowStyle.Resizable | NSWindowStyle.Titled;
  8.  
  9.         var rect = new CoreGraphics.CGRect(200, 1000, 1024, 768);
  10.         _window = new NSWindow(rect, style, NSBackingStore.Buffered, false);
  11.         _window.Title = "Xamarin.Forms Mac";
  12.         _window.TitleVisibility = NSWindowTitleVisibility.Hidden;
  13.     }
  14.  
  15.     public override NSWindow MainWindow
  16.     {
  17.         get { return _window; }
  18.     }
  19.  
  20.     public override void DidFinishLaunching(NSNotification notification)
  21.     {
  22.         Forms.Init();
  23.         LoadApplication(new App());
  24.  
  25.         base.DidFinishLaunching(notification);
  26.     }
  27. }
 


阅读(1252) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~