Xamarin Forms 数字键盘 - 启用 space 和破折号按钮

Xamarin Forms Numeric Keyboard - enable space and dash buttons

我有一个要求,允许 Xamarin Forms 应用程序中的字段仅包含数字、space 和破折号。数字键盘布局似乎非常适合此目的 - 唯一的麻烦 - space 和破折号按钮似乎不起作用?有什么方法可以启用这些,特别是在 Android - 因为这是主要目标平台。

有问题的按钮已突出显示。

<Entry
                            x:Name="BarcodeEntry"
                            Margin="12,0"
                            HeightRequest="40"
                            Placeholder="Barcode"
                            Style="{StaticResource BorderlessEntryStyle}"
                            Keyboard="Numeric"
                            Text="{Binding Barcode.Value, Mode=TwoWay}">

控件绑定到此 属性:

private string _barcode;
        public string Barcode
        {
            get => _barcode;
            set { SetProperty(ref _barcode, value); }

对于数字键盘,我们只有四种相关的 InputType。

  • number:只有数字的字段。
  • numberDecimal:可以与 number 及其其他选项结合使用以允许使用小数(小数)。
  • numberPassword:数字密码字段。
  • numberSigned:可以与 number 及其其他选项结合使用以允许签名号码。

关于InputTypes的更多详细信息,您可以参考下面的link。 https://developer.android.com/reference/android/widget/TextView#attr_android:inputType

如果您想使用 space 和破折号按钮,您可以使用电话键盘。或者您可以创建自己的自定义键盘。

自定义键盘:Numeric keyboard as default on Xamarin.Forms, but allow text (cross platform)