Библиотека Jetpack androidx.compose.material3 позволяет пользователям писать в любом компоненте TextField в любом приложении с помощью стилуса.
Чтобы включить ввод с помощью стилуса по умолчанию, добавьте зависимость библиотеки в файл build.gradle вашего приложения:
Котлин
dependencies { implementation("androidx.compose.foundation:foundation:LATEST_COMPOSE_VERSION") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "LATEST_EXTENSION_VERSION" } kotlinOptions { jvmTarget = "LATEST_JVM_VERSION" } }
Круто
dependencies { implementation 'androidx.compose.foundation:foundation:LATEST_COMPOSE_VERSION' } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = 'LATEST_EXTENSION_VERSION' } kotlinOptions { jvmTarget = 'LATEST_JVM_VERSION' } }
TextField
Рукописный ввод стилусом по умолчанию включен для всех компонентов TextField в Android 14 и более поздних версиях, а также в зависимости androidx.compose.foundation:foundation:1.7.0 . Режим рукописного ввода запускается для TextField при обнаружении движения стилуса в пределах области рукописного ввода компонента.
Границы рукописного ввода включают 40 dp вертикального отступа и 10 dp горизонтального отступа вокруг поля ввода.

TextField . Рукописный ввод с помощью стилуса не поддерживается для полей TextField , если редактор метода ввода запрашивается с помощью KeyboardType.Password .
Делегирование ввода
Приложения могут отображать элементы пользовательского интерфейса, которые выглядят как поля ввода текста, но на самом деле являются просто статическими элементами без возможности ввода текста. Поля поиска — типичный пример. Нажатие на статический элемент пользовательского интерфейса запускает переход к новому интерфейсу, содержащему функциональное поле ввода текста, предназначенное для ввода данных.
Делегирование ввода стилусом
Используйте API делегирования рукописного ввода для поддержки рукописного ввода стилусом в полях-заполнителях (см. handwritingDetector и handwritingHandler ). Элемент пользовательского интерфейса-заполнителя настроен на делегирование рукописного ввода в функциональное поле ввода. Пример реализации см. в разделе HandwritingDetectorSample.kt .
Режим рукописного ввода стилусом запускается, когда функциональное поле ввода получает фокус и создает InputConnection .
Тестирование
Рукописный ввод с помощью стилуса поддерживается на устройствах Android 14 и более поздних версий при наличии совместимого устройства ввода со стилусом и редактора методов ввода (IME), поддерживающего API Android 14 для рукописного ввода с помощью стилуса.
Если у вас нет устройства ввода со стилусом, имитируйте ввод со стилусом на любом устройстве с правами root (включая эмуляторы), используя следующие команды Android Debug Bridge (adb):
// Android 14
adb shell setprop persist.debug.input.simulate_stylus_with_touch true && adb shell stop && adb shell start
// Android 15 and higher
// Property takes effect after screen reconfiguration such as orientation change.
adb shell setprop debug.input.simulate_stylus_with_touch true
Если вы используете устройство, не поддерживающее стилус, используйте бета-версию Gboard для тестирования.
Дополнительные ресурсы
- Material Design — Текстовые поля
- Обработка пользовательского ввода