2017-10-17 3 views
0

Die Nachfrage ist die Standardnummer der Tastatur angezeigt wird eine negative Zahl wie folgt eingeben:Wie stelle ich die Tastatur als Zehnertastatur ein und kann eine negative Zahl in Xamarin.Forms eingeben?

enter image description here

Aber es gibt keinen Weg, um die Standardeinstellung für diese Art und Weise einzustellen.

Wenn Sie diese Tastatur einstellen, können Sie keine negative Zahl eingeben, klicken Sie auf das Minuszeichen reagiert nicht.

reine numerische Tastatur, kann aber nicht eine negative Zahl

enter image description here

Gibt es eine Lösung geben?

Antwort

1

Sie haben eine eigene Steuerung für NumericEntry wie erstellen:

public class NumericTextBox : Entry 
{ 
    public NumericTextBox() 
    { 
     this.Keyboard = Keyboard.Numeric; 
    } 
} 

Dann in Ihrem Android-Projekt, Erstellen von benutzerdefinierten Renderer:

[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; 
     } 
    } 
} 

Dies wurde getestet und arbeitet für Droid Geräte. Es erlaubt negative/positive Werte mit Dezimalpunkt einzugeben. Es verbietet es richtig, einen falschen Dezimalwert einzugeben.

+0

@Jackson, können Sie die 'TextBox' durch' Entry' in Wilson Vargas Beispiel ersetzen. –

+0

@York Shen - MSFT Vielen Dank Mach! – Jackson

Verwandte Themen