【问题标题】:Picker with two selection columns with numbers in Xamarin.Forms在 Xamarin.Forms 中具有两个带有数字的选择列的选择器
【发布时间】:2017-02-24 13:31:12
【问题描述】:

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

你看到的是一个 TimePicker,我拿它只是为了给你一个例子。我想要一个左边有大约 200 个数字,右边有 100 个的数字(例如)。如何在 Xamarin.Forms PCL 项目中执行此操作?

【问题讨论】:

    标签: xaml xamarin xamarin.forms timepicker picker


    【解决方案1】:

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

    现在,如果您对看起来不同的控件感到满意,您可以使用custom renderers 修改每个本机控件,甚至替换它们以提供您需要的功能。我想我会为您概述入门的基本步骤:

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

    如您所见,让滚动选择器在每个平台上工作都需要付出相当大的努力。


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

    Native Embedding

    Embedding native controls into Xamarin.Forms

    【讨论】:

      【解决方案2】:

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

      示例: https://github.com/HorusSoftwareUY/MaterialDesignControlsPlugin#materialdoublepicker

      截图: Android iOS

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

      欢迎投稿!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多