Xamarin.Forms 新版本中Device.OS过时和OnPlatform使用的改变

太久没有写Xamarin的代码,更新到vs for mac 正式版后发现一下代码已经出现警告。
新版本中一下代码已经提示警告:

大概就是这么个情况

Device.OS已经过时,使用RuntimePlatform代替。

RuntimePlatform定义为string类型,TargetPlatform并不能在提供枚举值用来判断当前运行时平台类型。

Device点智能提示已经给出了解决办法:

修改代码如下:

同样过时的还有OnPlatform的两个重载方法:

使用switch语句代替,查看OnPlatform实现代码可以发现,就是OnPlatform内封装的代码由我们自己来实现:


Xaml中经常会用到OnPlatform类代替Device类在布局代码中对不同平台设置不同的值,典型的就是iOS中页面Padding属性的设置:

查看OnPlatform类定义,对应的Android、iOS等属性已经过时:

代替代码

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 和莫笑还有男票去了国外旅行。语言不通,住在一个鱼龙混杂的公寓楼。大大的电梯,进去,要根据广播中的提升按数字,然后才...
    裳璎珞阅读 2,790评论 0 1
  • 看了一些MVP架构的代码,画了下图帮助理解,图中implements和组合关系的线不准确,勿介意。 源码和参考:h...
    winxx阅读 2,578评论 0 1
  • 年华伤逝敝裘,忆春秋。庭树旧时新绿,更烦忧。 窗外柳,东篱久,欲何求?啼鸟枝头空有,挂乡愁。
    仅愚阅读 1,787评论 0 1
  • 我们当前的各种感受与期望永远可以被拿来当做检查自己进步的工具,当下所有的感受跟期望都是可以用来作为自我检验的一个工...
    与姝会友阅读 1,513评论 0 0

友情链接更多精彩内容