如何将键盘设置为数字键盘,并且可以在Xamarin.Forms中输入负数?
问题描述:
的需求,显示键盘的默认号码可以进入这样的负数:如何将键盘设置为数字键盘,并且可以在Xamarin.Forms中输入负数?
但是没有办法来设置这样的默认。
如果您设置了此键盘,则无法输入负数,单击减号不响应。
纯数字小键盘,但不能输入负数
有没有什么解决办法吗?
答
你必须创建NumericEntry喜欢自己的控制:
public class NumericTextBox : Entry
{
public NumericTextBox()
{
this.Keyboard = Keyboard.Numeric;
}
}
然后,在你的Android项目,创建自定义呈现:
[assembly: ExportRenderer(typeof(NumericTextBox), typeof(CustomNumericTextboxRenderer))]
namespace xxx.Droid.Renderers
{
public class CustomNumericTextboxRenderer : EntryRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
{
base.OnElementChanged(e);
var native = Control as EditText;
native.InputType = Android.Text.InputTypes.ClassNumber | Android.Text.InputTypes.NumberFlagSigned | Android.Text.InputTypes.NumberFlagDecimal;
}
}
}
这已经过测试和Droid的设备工作。它允许输入带有小数点的负值/正值。它适当地禁止输入错误的十进制值。
@Jackson,你可以在Wilson Vargas的例子中用'Entry'替换'TextBox'。 –
@York Shen - MSFT非常感谢你! – Jackson