在我的ContentPage
的构造函数中,我尝试设置一个平台相关的填充值:
Padding = new Thickness(5, Device.OnPlatform(20, 5, 5), 5, 5);
字符串
Visual Studio给Device.OnPlatform
加下划线,当我将鼠标指针悬停在方法调用上时,我得到以下警告:
Devide.OnPlatform(T,T,T)已过时:'改用开关(RuntimePlatform)'。
最初使用的代码来自2016年发布的e-book 'Creating移动的Apps with Xamarin.Forms Book'。我真的很惊讶这个平台的发展速度有多快!
不幸的是,我不知道如何Device.OnPlatform
应该被替换使用的方式建议的警告。
5条答案
按热度按时间oyxsuwqo1#
2016年是这种方法被弃用的一年。
您应该使用switch语句来确定操作系统。
字符串
你当然可以把它 Package 在一个函数中,它将完成与你希望在Device.OnPlatform中完成的工作相同的工作,但是你将调用你自己的函数,而不是调用Device.OnPlatform。
uhry853o2#
字符串
wi3ka0sx3#
如果有人在XAML文件中有同样的问题,这是绕过弃用消息的方法:
字符串
7fhtutme4#
我通过使用内联三元条件运算符解决了这个问题,这假设您希望仅为iOS提供不同的内容
字符串
omtl5h9j5#
这是一个令人难以置信的API,我不认为this forum中陈述的原因可以证明它的弃用。
它可以很容易地扩展到支持多个平台。我知道在不久的将来会有很多变化,但我不认为任何开发人员每次必须做出简单的决定时都会选择编写繁琐的
switch
语句。这样的代码会变得很庞大。所以,我试图重建
Device.OnPlatform<T>
字符串
下面是一个关于如何使用它的示例:
型
正如你所看到的,我们很酷的API又回来了,Tizen永远被人们记住。
我计划做一个微型金块包出来,所以我愿意接受任何形式的纠正和帮助。
干杯