Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin.forms 表单:对于德语应用程序,自定义键盘使用点(.)而不是逗号(,)。如何改变这一点?_Xamarin.forms - Fatal编程技术网

Xamarin.forms 表单:对于德语应用程序,自定义键盘使用点(.)而不是逗号(,)。如何改变这一点?

Xamarin.forms 表单:对于德语应用程序,自定义键盘使用点(.)而不是逗号(,)。如何改变这一点?,xamarin.forms,Xamarin.forms,我不得不使用一个自定义条目打开一个键盘,它甚至包含一个小数点和一个数字输入类型: protected override void OnElementChanged(ElementChangedEventArgs<Entry> e) { base.OnElementChanged(e); GradientDrawable gd = new GradientDrawable(); gd.SetC

我不得不使用一个自定义条目打开一个键盘,它甚至包含一个小数点和一个数字输入类型:

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


            GradientDrawable gd = new GradientDrawable();
            gd.SetColor(global::Android.Graphics.Color.Transparent);
            this.Control.SetBackgroundDrawable(gd);
            this.Control.SetRawInputType(InputTypes.TextFlagNoSuggestions);
            Control.SetHintTextColor(ColorStateList.ValueOf(global::Android.Graphics.Color.Rgb(169, 169, 169))) ;


            if (Control != null)
            {
                this.Control.KeyListener = DigitsKeyListener.GetInstance(true, true); // I know this is deprecated, but haven't had time to test the code without this line, I assume it will work without
                this.Control.InputType = Android.Text.InputTypes.ClassNumber | Android.Text.InputTypes.NumberFlagDecimal;
            }

            if (Control == null || e.NewElement == null) return;

            if (Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop)
                Control.BackgroundTintList = ColorStateList.ValueOf(Android.Graphics.Color.Rgb(194, 213, 231));
            else
                Control.Background.SetColorFilter(Android.Graphics.Color.Rgb(194, 213, 231), PorterDuff.Mode.SrcAtop);
        }
protected override void OnElementChanged(ElementChangedEventArgs e)
{
基础。一个要素发生变化(e);
GradientDrawable gd=新的GradientDrawable();
SetColor(全局::Android.Graphics.Color.Transparent);
本品为对照品,可退根(gd);
this.Control.SetRawInputType(InputTypes.TextFlagNoSuggestions);
Control.SetHintTextColor(ColorStateList.ValueOf(global::Android.Graphics.Color.Rgb(169169169169));
if(控件!=null)
{
this.Control.keystener=digitskeystener.GetInstance(true,true);//我知道这是不推荐使用的,但是没有这一行,我还没有时间测试代码,我假设它在没有
this.Control.InputType=Android.Text.InputTypes.ClassNumber | Android.Text.InputTypes.NumberFlagDecimal;
}
if(Control==null | | e.NewElement==null)返回;
如果(Build.VERSION.SdkInt>=BuildVersionCodes.Lollipop)
Control.BackgroundTintList=ColorStateList.ValueOf(Android.Graphics.Color.Rgb(194213231));
其他的
Control.Background.SetColorFilter(Android.Graphics.Color.Rgb(194213231),PorterDuff.Mode.SrcAtop);
}
然而,这只给了我一个小数点,但应用程序本身是德语的。所以我需要显示一个逗号而不是一个点。但是逗号变灰了


如何获取它们?

您可以在xaml中设置
键盘
属性,而不是自定义渲染器

  <local:MyEntry Keyboard="Numeric" Placeholder="Entry" />


如果您将手机语言更改为德语,它是否使用逗号?如果这样做有效的话,那么应该有一些关于如何覆盖手机语言/文化设置的android文档。语言是德语…好的。不知何故,为了得到逗号,你需要告诉android语言环境。寻找与此类似的重新弃用呼叫:您不能简单地删除弃用呼叫。更仔细地看一下doc,它告诉您改为进行一个不同的调用,getInstance,我希望可以链接到上面的调用。这是否允许他们指定区域设置?他们的目标是使用欧洲十进制分隔符,逗号,而不是英文点。55.1234567=>551234567据我所知,德语的kaybord应该是逗号。我不确定这是否是由设备引起的。对不起,我不清楚。你答案中的逗号。你在设备(或模拟器)的数字键盘上看到了吗?您的设备是否设置为使用逗号作为小数分隔符的欧洲国家或语言?如果您将设备更改为美国或英国,键盘是否改为显示点?请查看屏幕截图。逗号与德语连用。点被禁用了。谢谢你的澄清和展示。从你答案中的值来看,我不确定那个逗号是“千位分隔符”(每三位数)还是“十进制分隔符”。令人费解的是,无论Jay第一次尝试什么,结果都不是相同的UI。