maui
maui copied to clipboard
Decimal point on numeric keyboard not working since Net8.0
Description
Since the update to Net8.0: Cannot type the decimal point into an Entry control using the softkeyboard with NUMERIC layout. This happen only on a real Android device like Android Phone (API 33) oder Android Tablet (API 30). The emulator works correct. iOS devices are also do fine
Steps to Reproduce
- create new MAUIApp
- add entry with KEYBOARD.NUMERIC
- run and try to enter a decimal point, KEYBOARD.DEFAULT is not effected
<VerticalStackLayout Padding="30,0" Spacing="25">
<Label
SemanticProperties.HeadingLevel="Level1"
Style="{StaticResource Headline}"
Text="Entry - Keyboard - Test" />
<Entry Keyboard="Default" WidthRequest="300" FontSize="22"/>
<Entry Keyboard="Numeric" WidthRequest="300" FontSize="22"/>
</VerticalStackLayout>
Link to public reproduction project repository
https://github.com/HaimoHeymann/MauiApp1/tree/master
Version with bug
8.0.3
Is this a regression from previous behavior?
No, this is something new
Last version that worked well
7.0.101
Affected platforms
Android
Affected platform versions
Android API30 and API33
Did you find any workaround?
No
Relevant log output
No response
Verified this issue with Visual Studio 17.10.0 Preview 1. Can repro on Android emulator(api34)/device(api33) with sample project.
@samhouts, since NET7 End of Support is May 14, 2024, and this regression blocks transition to NET8, what should be the expected strategy here?
I have tested this with emulators and a real device on all version of .NET 8, and in all cases, I am able to enter a single decimal point with the numeric keyboard, as shown in this comment. The description of this issue seems to indicate that you cannot enter a decimal at all, but I wonder if you mean to say that you can't enter more than one decimal? Please clarify what is meant here. Thanks!
Hi,
I tested again with these versions of .Net8.0 (8.0.3) and Visual Studio 17.9.3 in Debug mode:
- Android Emulator Pixel 5: decimal point can be entered, limited to 1 point
- Samsung Galaxy S20: no decimal point can be entered, but it is possible to enter the minus sign by double tapping the key
- Samsung Galaxy Tablet: no decimal point can be entered, minus sign by double tapping
- iOS Simulator iPhone 8 Plus: decimal point can be entered several times, no limitation to 1 point
Maybe it is an issue of Samsung Keyboard, as it also shows a different layout. Unfortunately, I only have Samsung devices to test. On iOS Simulator one can enter more than just 1 point
See also 2 screenshots and my Github project: https://github.com/HaimoHeymann/MauiApp1
That is strange. I tried again with S8+, S9+, and I do see that keyboard style. If I single tap the .-
, though, the single decimal point does work for me. I also tried my S24 for good measure, and that has a keyboard more similar to the Pixel keyboard, and that also allows the single decimal point.
The single decimal point is a quirk of Android when you're using the numeric-decimal input type.
This is strange too: For my tests, the language on the Samsung device was set to 'German'. As soon as I changed the language to 'English', the error no longer occurs: The decimal point works fine - amaizing!
One more comment: I changed the keyboard of my device from Samsung to Microsoft Swiftkey. The decimal point (in Germany the comma) is working fine. So, the Samsung keyboard seems to be the root cause.