Xamarin.Forms:wie man nur Zahlen und Punkte zulässt

Xamarin.Forms:wie man nur Zahlen und Punkte zulässt

Lösung für Xamarin.Forms:Wie man nur Zahlen und Punkte zulässt
ist unten angegeben:

Ich muss nur die Eingabe von Zahlen und Punkten über die Tastatur zulassen. Ich habe einen benutzerdefinierten Renderer für Android erstellt, der von EntryRenderer erbt und die OnElementChanged-Methode wie folgt überschreibt:

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

        if (Control != null && Element is EntryOnlyNumber entryOnlyNumber)
        {
            string acceptedValue = "1234567890";

            if (entryOnlyNumber.AcceptComma)
                acceptedValue += ",";

            if (entryOnlyNumber.AcceptDot)
                acceptedValue += ".";

            Control.KeyListener = DigitsKeyListener.GetInstance(acceptedValue);
        }
    }

Dies ist der Code in xaml:

<StackLayout Orientation="Horizontal" VerticalOptions="StartAndExpand" 
             Padding="10,20" Spacing="0">
    <Label Text="Indirizzo server:" />
    <controls:EntryOnlyNumber x:Name="EntryAddress" Text="{Binding IdAddress}" HorizontalOptions="FillAndExpand" WidthRequest="100" AcceptDot="True"/>       
    <Label Text=":" />       
    <controls:EntryOnlyNumber x:Name="EntryPort" Text="{Binding Port}"
</StackLayout>

Aber das ist das Ergebnis auf Android 7:

Wie Sie sehen können, fehlt der Punkt in der Tastatur. Was kann ich tun, um dieses Problem zu umgehen?

Wie Jason sagte, kann die Tastatur, die angezeigt wird, wenn Benutzer mit einem Eintrag interagieren, programmgesteuert über die Keyboard-Eigenschaft auf eine der folgenden Eigenschaften aus der Keyboard-Klasse festgelegt werden:

Chatten – Wird für SMS und Orte verwendet, an denen Emojis nützlich sind.

Standard – die Standardtastatur.

E-Mail – Wird bei der Eingabe von E-Mail-Adressen verwendet.

Numerisch – Wird bei der Eingabe von Zahlen verwendet.

Einfach – Wird beim Eingeben von Text verwendet, ohne dass KeyboardFlags angegeben sind.

Telefon – Wird bei der Eingabe von Telefonnummern verwendet.

Text – Wird bei der Texteingabe verwendet.

URL – wird zur Eingabe von Dateipfaden und Webadressen verwendet.

Damit Sie die Tastatur anpassen können, müssen Sie Entry Render nicht verwenden.

<StackLayout>
        <Entry Keyboard="Numeric" />
    </StackLayout>

Aktualisierung:

Sie können einen folgenden Code nehmen:

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

        if (Control != null)
        {
            this.Control.KeyListener = DigitsKeyListener.GetInstance("1234567890,.");
        }
    }