کتابخانه 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
به طور پیشفرض در اندروید 14 و بالاتر و وابستگی androidx.compose.foundation:foundation:1.7.0
فعال است. حالت دست خط زمانی برای یک TextField
شروع می شود که یک رویداد حرکتی قلم در محدوده دست خط جزء تشخیص داده شود.
حاشیه های دست خط شامل 40 dp از لایه های عمودی و 10 dp از لایه های افقی در اطراف فیلد ورودی است.
![فیلد ورودی با مستطیل اطراف که مرزهای تشخیص رویدادهای حرکت قلم را نشان می دهد.](https://developer.android.com/static/images/develop/ui/compose/touch-input/stylus-input/shared/edittext_handwriting_bounds.png?authuser=2&hl=fa)
TextField
. هنگامی که ویرایشگر روش ورودی با KeyboardType.Password
درخواست می شود، دست خط قلم برای فیلدهای TextField
پشتیبانی نمی شود.
تفویض اختیار ورودی
برنامهها میتوانند عناصر رابط کاربری مکاننما را نشان دهند که به نظر میرسد فیلدهای ورودی متن هستند، اما در واقع فقط عناصر رابط کاربری ثابت هستند که قابلیت ورودی متن ندارند. فیلدهای جستجو یک مثال رایج هستند. ضربه زدن روی عنصر استاتیک UI باعث انتقال به یک رابط کاربری جدید می شود که حاوی یک فیلد ورودی متن کاربردی متمرکز برای ورودی است.
انتقال ورودی قلم
از APIهای تفویض دستنویس برای پشتیبانی از ورودی دستنویس قلم برای فیلدهای ورودی مکاننما استفاده کنید (به handwritingDetector
and handwritingHandler
مراجعه کنید). عنصر UI نگهدارنده مکان طوری پیکربندی شده است که دست خط را به یک فیلد ورودی عملکردی واگذار کند. برای اجرای نمونه، HandwritingDetectorSample.kt
را ببینید.
حالت دستنویس قلم زمانی شروع میشود که فیلد ورودی عملکردی تمرکز کند و یک InputConnection
ایجاد کند.
تست کردن
دستنویس قلم در دستگاههای Android 14 و بالاتر با یک دستگاه ورودی قلم سازگار و یک ویرایشگر روش ورودی (IME) که از APIهای دستنویس اندروید 14 پشتیبانی میکند، پشتیبانی میشود.
اگر دستگاه ورودی قلم ندارید، با استفاده از دستورات 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 بتا برای آزمایش استفاده کنید.
منابع اضافی
- طراحی متریال - فیلدهای متنی
- کنترل ورودی کاربر