选择器的两个选择列与Xamarin.Forms中的数字

时间:2017-02-24 13:31:12

标签: xaml xamarin xamarin.forms timepicker picker

我需要在下图中制作一个这样的选择器:

enter image description here

你看到的是一个TimePicker,我只是为了给你一个例子。我想在左边有一个约200个数字,在右边有100个(例如)。我怎么能在Xamarin.Forms PCL项目中做到这一点?

2 个答案:

答案 0 :(得分:2)

您将面临的第一个问题是,您在此处看到的选择器控件是本机iOS控件。 Xamarin.Forms TimePicker本身基本上不是物理控件,但它转换为每个平台上的本机控件。这就是为什么它在Android和UWP设备上会有所不同,因为它们提供了自己的选择器控件,如下图所示。

enter image description here

现在,如果您对控件的看法不同,可以使用custom renderers修改每个本机控件,甚至替换它们以提供所需的功能。我想我会概述让你开始的基本步骤:

  1. 创建一个名为CustomPicker的新Xamarin.Forms控件。
  2. 为每个平台创建自定义渲染器。
  3. 在iOS上,您可以使用UIPickerView并指定numberOfComponentsnumberOfRows和数据来源。
  4. 在Android上,您可能希望使用第三方控件,因为默认情况下,没有像iOS上那样的滚动选择器控件。 WheelPicker看起来很有希望。
  5. 在UWP上,您可以使用PickerFlyoutBase解决问题。我对平台的了解有限,但你应该能够很容易地找到一些东西。
  6. 正如您所看到的,让每个平台上的滚动选择器都能正常工作。

    编辑:您还可以查看本机嵌入,它允许您将本机控件嵌入到Xamarin.Forms应用程序的页面中。

    Native Embedding

    Embedding native controls into Xamarin.Forms

答案 1 :(得分:0)

我们为Xamarin.Forms(Android和iOS)开发了一个两列选择器。

样本: https://github.com/HorusSoftwareUY/MaterialDesignControlsPlugin#materialdoublepicker

屏幕截图: Android iOS

我们将此控件添加到了MaterialDesignControls NuGet(https://www.nuget.org/packages/Plugin.MaterialDesignControls/)中,您可以在其中找到具有材质设计外观的其他有趣控件。

欢迎捐款!