Цифровая клавиатура ввода MAUI не принимает десятичные точки на AndroidC#

Место общения программистов C#
Anonymous
Цифровая клавиатура ввода MAUI не принимает десятичные точки на Android

Сообщение Anonymous »

Используя обычный MAUI с цифровой клавиатурой, я не могу вводить десятичную точку на чужом устройстве, но могу вводить десятичную точку на своем собственном устройстве. Почему это и как мне решить эту проблему?
Я использую простую запись по умолчанию с цифровой виртуальной клавиатурой: Со свойством значения, привязанным к его текстовому атрибуту, например:

Код: Выделить всё

private string price = "";
public string Price
{
get => price;
set => SetProperty(ref price, value);
}
Поле «цена» изначально имело тип данных double, и я думал, что это проблема, но изменение его на более гибкую строку ничего не решает.
Примечание: я использую MVVM, а не код программной части.
На всякий случай, вот метод SetProperty, который я использовал:

Код: Выделить всё

protected bool SetProperty(ref T storage, T value, [CallerMemberName] string propertyName = null)
{
if (Object.Equals(storage, value))
return false;

storage = value;

OnPropertyChanged(propertyName);

return true;
}

protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
Мое устройство — Galaxy S23 Ultra под управлением Android 14, и я могу без проблем вводить десятичные точки. Другое устройство, которое я пробовал, — это Galaxy S20 Ultra под управлением Android 13, который не может вводить десятичные точки для этой записи. На цифровой программной клавиатуре появляется кнопка десятичного разделителя, она не выглядит отключенной, но почему-то не реагирует на нажатия.
Между тем я обнаружил, что разные устройства могут, а другие не могут устанавливать десятичные точки. Не только упомянутые устройства.
Говорим об этой цифровой программной клавиатуре для Android:
Изображение

Кнопка десятичный разделитель работает у меня, но не на другом устройстве.
Разделитель тысяч Кнопка .- реагирует на обоих устройствах звуком щелчка клавиатуры или вибрацией, но не вводит никаких символов. Если он должен работать по умолчанию, возможно, это связано с одной и той же проблемой.
Мне просто хотелось бы иметь возможность вводить десятичные точки (для нас это символ запятой) на всех устройствах, как и следовало ожидать от цифровой виртуальной клавиатуры.
Надеюсь, кто-нибудь сможет мне помочь с этим.
Изменить:

Изменение клавиатуры моих коллег на клавиатуру Microsoft SwiftKey (вместо клавиатуры Samsung) работает следующим образом: она может вводить запятую, чего не может сделать клавиатура Samsung на их устройстве. Это заставляет меня поверить, что где-то должна быть настройка для клавиатуры Samsung, а в коде ее нет. Хотя я могу быть совершенно не прав. Все еще ищем решение.
Изменить 2:

Почитайте о других людях, у которых есть аналогичные проблемы с десятичным разделителем для записей с цифровой клавиатурой на Android. Возможно, это не та же самая проблема, но они связаны, поэтому я попробовал их обходные пути. Например, эта тема из далекого 2022 года и другая тема из этого года. Обходные пути устарели или не подходят для данного конкретного случая.

Вернуться в «C#»