数字输入字段的键盘不显示负号和小数点,但可以接受

时间:2018-08-03 08:54:07

标签: xamarin xamarin.android android-softkeyboard

我创建了一个CustomFloatEntry。我正在使用仿真器Visual Studio-Android-23 Tablet。使用德语语言环境

不,我看到数字键盘显示的问题。我可以输入数字的负数和小数点。显示屏上会显示数字,但键盘窗口的显示屏中不会出现负号或小数点。

我可以看到所有字符在TextChanged事件中均正确显示。因此,键入1,23将导致显示123,并且该值已正确转换为1.23的双精度值。

我在做什么错?如何更改键盘窗口以显示输入的内容。

当我将文本设置为双精度值12.345时,也会显示该效果。内部转换器将Text属性加载为12,345,但键盘窗口显示为12345!

有关此代码的更多信息:

键盘定义为

Keyboard = Keyboard.Numeric;

我还有一个自定义渲染器,该渲染器已执行并定义如下。我决定使用自定义渲染器,因为尽管这是here in this forum所述的问题。

class CustomFloatEntryRenderer : EntryRenderer
{
    public CustomFloatEntryRenderer(Context context) : base(context)
    {
    }

    protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
    {
        base.OnElementChanged(e);

        if (this.Control == null) return;

        this.Control.KeyListener = DigitsKeyListener.GetInstance("1234567890-"+ CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator);
    }
}

0 个答案:

没有答案