Jetpack
androidx.compose.material3
ไลบรารีเปิดโอกาสให้ผู้ใช้เขียนลงในคอมโพเนนต์ TextField
ใดก็ได้ใน
แอปใดก็ได้ที่ใช้สไตลัส
หากต้องการเปิดใช้อินพุตสไตลัสโดยค่าเริ่มต้น ให้เพิ่มทรัพยากร Dependency ของไลบรารีลงใน
build.gradle
ไฟล์:
Kotlin
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 ระยะห่างจากขอบรอบๆ ช่องป้อนข้อมูล
![ช่องป้อนข้อมูลที่มีสี่เหลี่ยมผืนผ้าล้อมรอบซึ่งระบุขอบเขตสำหรับการตรวจจับเหตุการณ์การเคลื่อนไหวของสไตลัส](https://developer.android.com/static/images/develop/ui/compose/touch-input/stylus-input/shared/edittext_handwriting_bounds.png?authuser=0000&hl=th)
TextField
ไม่รองรับการเขียนด้วยลายมือโดยใช้สไตลัสในช่องTextField
เมื่อวิธีการป้อนข้อมูล
ขอเอดิเตอร์กับ KeyboardType.Password
การมอบสิทธิ์อินพุต
แอปสามารถแสดงองค์ประกอบ UI ที่เป็นตัวยึดตำแหน่งที่ปรากฏเป็นช่องป้อนข้อความ แต่ เป็นเพียงองค์ประกอบ UI แบบคงที่ ซึ่งไม่มีความสามารถในการป้อนข้อความ ค้นหา เป็นตัวอย่างทั่วไป การแตะองค์ประกอบ UI แบบคงที่จะทริกเกอร์การเปลี่ยน ไปยัง UI ใหม่ที่มีช่องป้อนข้อความที่ใช้งานได้ซึ่งเน้นสำหรับป้อนข้อมูล
การมอบสิทธิ์อินพุตสไตลัส
ใช้ API การมอบสิทธิ์การเขียนด้วยลายมือเพื่อรองรับการป้อนข้อมูลด้วยลายมือโดยใช้สไตลัสสำหรับ
ช่องป้อนข้อมูลตัวยึดตำแหน่ง (โปรดดูhandwritingDetector
และ
handwritingHandler
) องค์ประกอบ UI ของตัวยึดตำแหน่งคือ
มีการกำหนดค่าเพื่อมอบสิทธิ์การเขียนด้วยลายมือไปยังฟิลด์ป้อนข้อมูลที่ใช้งานได้ ตัวอย่างเช่น
การใช้งาน โปรดดู
HandwritingDetectorSample.kt
โหมดการเขียนด้วยลายมือโดยใช้สไตลัสจะเริ่มขึ้นเมื่อช่องป้อนข้อมูลการทำงานมีโฟกัสและ
สร้าง
InputConnection
การทดสอบ
การเขียนด้วยลายมือโดยใช้สไตลัสใช้งานได้ในอุปกรณ์ Android 14 ขึ้นไปที่มี อุปกรณ์อินพุตสไตลัสที่เข้ากันได้และวิธีการป้อนข้อมูล Editor (IME) ที่ รองรับ API การเขียนด้วยลายมือโดยใช้สไตลัสใน Android 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 รุ่นเบต้าในการทดสอบหากคุณใช้อุปกรณ์ที่ไม่รองรับ สไตลัส
แหล่งข้อมูลเพิ่มเติม
- ดีไซน์ Material — ช่องข้อความ
- จัดการข้อมูลจากผู้ใช้