选择器有两个选择列,数字在 Xamarin.Forms
Picker with two selection columns with numbers in Xamarin.Forms
我需要做一个如下图这样的选择器:
你看到的是一个TimePicker,我拿它来给你举个例子。我想要一个左边有大约 200 个数字,右边有 100 个数字的数字(例如)。我怎样才能在 Xamarin.Forms PCL 项目中做到这一点?
您将面临的第一个问题是您在此处看到的选择器控件是本机 iOS 控件。 Xamarin.Forms TimePicker 本身基本上不是物理控件,而是在每个平台上转换为本机控件。这就是它在 Android 和 UWP 设备上看起来不同的原因,因为它们提供了自己的选择器控件,如下图所示。
现在,如果您认为控件看起来不同,您可以使用 custom renderers 修改每个本机控件,甚至替换它们以提供您需要的功能。我想我会概述让您入门的基本步骤:
- 创建一个名为 CustomPicker 或其他名称的新 Xamarin.Forms 控件。
- 为每个平台创建自定义渲染器。
- 在 iOS 上,您可以使用 UIPickerView and specify numberOfComponents, numberOfRows 和数据源。
- 在 Android 上,您可能想要使用第 3 方控件,因为默认情况下,没有像 iOS 上那样的滚动选择器控件。 WheelPicker 看起来很有希望。
- 在 UWP 上,您也许可以使用 PickerFlyoutBase 解决一些问题。我对该平台的了解有限,但你应该能够很容易地找到一些东西。
如您所见,要让滚动选择器在每个平台上正常工作需要付出很大的努力。
编辑:您还可以研究本机嵌入,它可以让您将本机控件嵌入到 Xamarin.Forms 应用程序的页面中。
我们为 Xamarin.Forms(Android 和 iOS)开发了一个两列选择器。
样本:
https://github.com/HorusSoftwareUY/MaterialDesignControlsPlugin#materialdoublepicker
截图:
Android
iOS
我们将此控件添加到 MaterialDesignControls NuGet (https://www.nuget.org/packages/Plugin.MaterialDesignControls/),您可以在其中找到具有 material 设计外观的其他有趣控件。
欢迎投稿!
我需要做一个如下图这样的选择器:
你看到的是一个TimePicker,我拿它来给你举个例子。我想要一个左边有大约 200 个数字,右边有 100 个数字的数字(例如)。我怎样才能在 Xamarin.Forms PCL 项目中做到这一点?
您将面临的第一个问题是您在此处看到的选择器控件是本机 iOS 控件。 Xamarin.Forms TimePicker 本身基本上不是物理控件,而是在每个平台上转换为本机控件。这就是它在 Android 和 UWP 设备上看起来不同的原因,因为它们提供了自己的选择器控件,如下图所示。
现在,如果您认为控件看起来不同,您可以使用 custom renderers 修改每个本机控件,甚至替换它们以提供您需要的功能。我想我会概述让您入门的基本步骤:
- 创建一个名为 CustomPicker 或其他名称的新 Xamarin.Forms 控件。
- 为每个平台创建自定义渲染器。
- 在 iOS 上,您可以使用 UIPickerView and specify numberOfComponents, numberOfRows 和数据源。
- 在 Android 上,您可能想要使用第 3 方控件,因为默认情况下,没有像 iOS 上那样的滚动选择器控件。 WheelPicker 看起来很有希望。
- 在 UWP 上,您也许可以使用 PickerFlyoutBase 解决一些问题。我对该平台的了解有限,但你应该能够很容易地找到一些东西。
如您所见,要让滚动选择器在每个平台上正常工作需要付出很大的努力。
编辑:您还可以研究本机嵌入,它可以让您将本机控件嵌入到 Xamarin.Forms 应用程序的页面中。
我们为 Xamarin.Forms(Android 和 iOS)开发了一个两列选择器。
样本: https://github.com/HorusSoftwareUY/MaterialDesignControlsPlugin#materialdoublepicker
截图: Android iOS
我们将此控件添加到 MaterialDesignControls NuGet (https://www.nuget.org/packages/Plugin.MaterialDesignControls/),您可以在其中找到具有 material 设计外观的其他有趣控件。
欢迎投稿!