【问题标题】:How to give multi-device support in Xamarin Forms如何在 Xamarin Forms 中提供多设备支持
【发布时间】:2018-06-11 20:55:18
【问题描述】:

我是 Xamarin 开发的新手。

在 android 中,我们有不同的值文件夹来支持多设备。

但在 Xamarin 表单中,我们如何为 Android 和 iOS 提供多设备支持?

任何人不知道什么是多设备支持请查看 Android 的示例文档
https://developer.android.com/guide/practices/screens_support.html

对于 Xamarin 表单,我希望类似这样。

注意:我问的是不是在本机代码中的 Xamarin 表单

欢迎任何建议或想法。感谢您的回答。

【问题讨论】:

  • 反对者也需要说明原因。
  • 你的意思是“多设备支持的不同值文件夹”?不同的布局文件?
  • @YorkShen-MSFT 你不知道 Android 中的多设备支持吗?如果有人不知道,请输入“Android 中的多设备支持”,您会得到答案。 developer.android.com/guide/practices/screens_support.html
  • 我了解多设备支持,在 Xamarin.Forms 项目中,为不同的屏幕尺寸提供不同的布局不再起作用,因为 Xamarin.Forms 在PCL,为不同的屏幕密度提供不同的位图可绘制对象在 Xamarin.Android 项目中仍然有效。
  • @YorkShen-MSFT 请再次阅读问题。我在询问 Xamarin 表单。我已经在 注意:我询问的不是本机代码中的 Xamarin 表单。 没有关于 Xamarin 表单中的多设备支持的文档。 SO中没有问题。 Xamarin 问题没有人回答。现在讨厌 Xamarin

标签: xamarin xamarin.forms xamarin.ios xamarin.android


【解决方案1】:

如何在 Xamarin Forms 中提供多设备支持

Xamarin.Forms XAML 支持:

Xamarin.Forms 使用特定于平台的机制来计算绝对像素尺寸。正如Digitalsa1nt 所说,Xamarin.Forms 使用xaml 作为渲染显示的基本标记语言,并在运行时将其转换为本机对应物。通常,您不必关心分辨率,它会根据您的布局和约束调整视图。


一些关于 Xamarin.Forms 多设备支持的有用链接:


更新:

你可以阅读这个官方文档:Dealing with sizes 和相关的sample。它演示了许多解决您问题的解决方案:

例如:Platform-specific font size at no cost

在某些情况下,我们需要根据特定操作系统的样式为控件分配不同的字体大小,避免硬编码值。通过 Device 类,Xamarin.Forms 可以免费实现这一点。

在您的 Page OnAppearing() 方法中:

protected override void OnAppearing()
{
    base.OnAppearing();
    this.LargeLabel.FontSize = Device.GetNamedSize(NamedSize.Large, typeof(Label));
    this.SmallLabel.FontSize = Device.GetNamedSize(NamedSize.Small, typeof(Label));
    this.MediumLabel.FontSize = Device.GetNamedSize(NamedSize.Medium, typeof(Label));
}

效果:

【讨论】:

  • 所有链接都有帮助。但我想要各种设备的文本大小更改。例如:如果我们给 textsize= 12 它在手机上感觉很好。但在 7 英寸或 9 英寸的平板电脑中,它看起来非常小。你如何处理这个案子?我只需要回答这个问题
  • @RanjithKumar,您可以使用Device.Idiom 来检测当前设备是手机还是平板电脑,然后您可以为平板电脑设置更大的文本大小。
  • yes Device.Idiom 是不错的选择。但是您如何处理 7 英寸和 10 英寸的平板电脑,我们对 7 英寸和 10 英寸应用相同的文本大小啊?因为如果我们为基于 Device.Idiom 的平板电脑应用大文本大小,它适用于高分辨率平板电脑。但是低分辨率的平板电脑看起来很大。这个原因仅在 Android 中,我们使用不同的值文件夹并在每个文件夹上提及文本大小值。如果我们使用 Idiom,我们如何处理这种情况?
  • @RanjithKumar,作为一种解决方法,您可以检测您的设备屏幕大小,然后根据屏幕大小设置合适的文本大小。
  • 您的答案不是这个问题的确切解决方案。对于 iOS,您的解决方案肯定会奏效。但是 Android 您的解决方案并不能适用于所有设备,例如低密度平板电脑、高密度手机。寻找 100% 有效的答案。我已经研究并找到了适用于 android 的解决方案。我稍后会发布我的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-20
  • 1970-01-01
  • 2016-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多