【问题标题】:Checking whether the user is using an iPhone or and iPad in Xamarin.Forms检查用户是否在 Xamarin.Forms 中使用 iPhone 或 iPad
【发布时间】:2018-06-16 06:38:05
【问题描述】:

我找了好久,不知道如何判断用户是iPad还是iPhone?

我正在使用 Xamarin.Forms,我无需检查 Android 设备是平板电脑还是手机,因为 Android 无法解决此问题。


我发现可能有用的代码:

var idiom = UIKit.UIDevice.CurrentDevice.UserInterfaceIdiom;

感谢您的宝贵时间!

【问题讨论】:

  • 为什么需要知道是 iPhone 还是 iPad?这通常是错误的方法。
  • @rmaddy 因为当我为 iPad 创建 MasterDetailPage 时,而不是 iPhone 上显示的动画(详细信息页面与主(菜单)一起向右滑动 - 这就是我想要的) 它有一个动画,主(菜单)页面在详细页面顶部滑动。如果您对此问题有解决方案,我将非常感激:)

标签: ios iphone ipad xamarin xamarin.forms


【解决方案1】:

您可以使用 Xamarin.Forms 中的 Device Class 进行检查

if (Device.Idiom == TargetIdiom.Tablet)
{
    // iPad
}

if (Device.Idiom == TargetIdiom.Phone)
{
    // iPhone
}

这是一个适用于 Android、iOS 和 Windows Phone 的多平台解决方案。

如果您需要在 XAML 文件中做出不同,可以使用 OnIdiom 标记,如下所示:

<StackLayout>
   <StackLayout.Padding>
      <OnIdiom x:TypeArguments="Thickness">
          <OnIdiom.Phone>
              10
          </OnIdiom.Phone>
          <OnIdiom.Tablet>
              20
          </OnIdiom.Tablet>
      </OnIdiom>
   </StackLayout.Padding>
</StackLayout>

【讨论】:

  • 像魅力一样工作!谢谢!
【解决方案2】:

Device.Idiom 在 IOS SDK 12.2 上不适合我。

这样做:

using UIKit;

UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Phone // or Pad

确切地说,Device.Idiom 返回 TargetIdiom.Unsupported,适用于 iPhone SE 和 iPhone XR。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-15
    • 2014-11-18
    • 2013-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多