如何使我的选择器选项呈现为框而不是微调框?

时间:2018-06-05 06:06:29

标签: xamarin.forms

在Android上,我的选择器正在呈现为

Spinner Style

我更喜欢将其渲染为

Non Spinner

这不是我遇到困难的颜色,而是它被渲染为旋转器并且我不想要那样。< / p>

我通过数据绑定到ItemsSource属性来填充选择器,如此处所述。

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/picker/populating-itemssource

这是我的选择者

<Picker ItemsSource="{Binding AmountFrequencyStrategies}" />

这是我的观点模型

    private List<string> amountFrequencyStrategies;

    public PageViewModel()
    {
        this.amountFrequencyStrategies = new List<string>{ "one", "two", "three"};
    }

    public List<string> AmountFrequencyStrategies => this.amountFrequencyStrategies;

我的xamarin.forms版本是3.0.0.482510

我的Android清单文件包含以下行

<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="27" />

2 个答案:

答案 0 :(得分:1)

您将必须为选择器编写自己的渲染器,或者根本不使用选择器,并滚动自己的跨平台UI来选择项目。您可以根据自己的经验将内置的Xamarin Forms选择器渲染到Android上的Spinner。

自定义渲染器指南:https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/custom-renderer/

您可能希望查看Android上的Xamarin.Forms Picker Renderer的源代码,以使您了解如何制作自己的而不使用Spinner的方法: 未使用AppCompat:https://github.com/xamarin/Xamarin.Forms/blob/master/Xamarin.Forms.Platform.Android/Renderers/PickerRenderer.cs 使用AppCompat: https://github.com/xamarin/Xamarin.Forms/blob/master/Xamarin.Forms.Platform.Android/AppCompat/PickerRenderer.cs

实际上看起来好像他们没有在使用Spinner。在非AppCompat渲染器上,看起来只使用了Android NumberPicker: https://github.com/xamarin/Xamarin.Forms/blob/master/Xamarin.Forms.Platform.Android/Renderers/PickerRenderer.cs#L110

在PickerRenderer的AppCompat版本上,看起来像是在使用警告对话框: https://github.com/xamarin/Xamarin.Forms/blob/master/Xamarin.Forms.Platform.Android/AppCompat/PickerRenderer.cs#L109

答案 1 :(得分:0)

您可以参考:Bindable Picker Control for Xamarin.Forms 希望它可以解决你的问题