суммы разделители разрядов вставлял и при этом копейки у сумм адекватно обрабатывал?
Не знаю есть готовый контрол, но есть дефолтный форматер валют. Можно во VM хранить исходное число и все инпуты обрабатывать, а наружу во вью кидать отформатированную валюту со всеми запятыми, пробелами, валютными символами
Не, задача стоит чтоб во время ввода в текстовое поле форматирование сразу отрабатывало
Так текстовое поле отображает данные во ViewModel, если они туда приходят уже отформатированные, то в чем проблема
Почти наверняка уверен, что если при таком подходе например ввести цифру в середину строки, то курсор сразу перебросится в конец строки, из за переприсваивания поля из вьюмодели
Если не трогать selection, всё будет ожидаемо. Стейт в любом случае для поля нужен, разницы нет где он будет - в функции или ВМ
я немного с другой платформы пришёл к compose, скажите если я не прав, допустим мы храним стейт во вьюмодели (это не сильно принципиально думаю), тогда в момент передачи его во вьюмодель с последующим форматированием и возвратом назад курсор как минимум будет убегать в конец строки, то есть поставили курсор в середину поля, нажимаем первую цифру, нажимаем вторую - первая вставится в середину, где стоял курсор, (тут курсор улетает в конец) вторая уже вставится в конец строки... Следовательно всю обработку нужно делать во время ввода в коде самого контрола без передачи стейта куда либо
Ну я не Саша... С ксамарина
Что-то похожее https://github.com/Muratthekus/Compose-CurrencyText
Так сделай фильтр в лямбде и делегируй смену текста во ViewModel если он прошел фильтр
Обсуждают сегодня