ไลบรารี 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" } }
Groovy
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
การมอบสิทธิ์อินพุต
แอปสามารถแสดงองค์ประกอบ UI ตัวยึดตำแหน่งที่ดูเหมือนช่องป้อนข้อความ แต่จริงๆ แล้วเป็นเพียงองค์ประกอบ UI แบบคงที่ที่ไม่มีความสามารถในการป้อนข้อความ ฟิลด์การค้นหาเป็นตัวอย่างที่พบบ่อย การแตะองค์ประกอบ UI แบบคงที่จะทําให้เกิดการเปลี่ยน ไปยัง UI ใหม่ที่มีช่องป้อนข้อความที่ใช้งานได้ซึ่งโฟกัสสําหรับการป้อนข้อมูล
การมอบสิทธิ์อินพุตสไตลัส
ใช้ API การมอบสิทธิ์การเขียนด้วยลายมือเพื่อรองรับการป้อนข้อมูลด้วยการเขียนด้วยลายมือโดยใช้สไตลัสสำหรับ
ช่องป้อนข้อมูลตัวยึดตำแหน่ง (ดู handwritingDetector และ
handwritingHandler) องค์ประกอบ UI ตัวยึดตำแหน่งได้รับการกำหนดค่าให้มอบสิทธิ์การเขียนด้วยลายมือไปยังช่องป้อนข้อมูลที่ใช้งานได้ ดูตัวอย่าง
การติดตั้งใช้งานได้ที่
HandwritingDetectorSample.kt
โหมดการเขียนด้วยลายมือโดยใช้สไตลัสจะเริ่มเมื่อช่องป้อนข้อมูลที่ใช้งานได้ได้รับโฟกัสและสร้าง InputConnection
การทดสอบ
การเขียนด้วยลายมือโดยใช้สไตลัสรองรับในอุปกรณ์ Android 14 ขึ้นไปที่มี อุปกรณ์ป้อนข้อมูลสไตลัสที่เข้ากันได้และโปรแกรมแก้ไขวิธีการป้อนข้อมูล (IME) ที่ รองรับ Android 14 Stylus Handwriting API
หากไม่มีอุปกรณ์ป้อนข้อมูลด้วยสไตลัส ให้จำลองการป้อนข้อมูลด้วยสไตลัสในอุปกรณ์ใดก็ได้ ที่มีสิทธิ์เข้าถึงระดับรูท (รวมถึงโปรแกรมจำลอง) โดยใช้คำสั่ง 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 - ช่องข้อความ
- จัดการอินพุตของผู้ใช้