Android 14 (API ระดับ 34) ขึ้นไปช่วยให้ผู้ใช้เขียนข้อความในการป้อนข้อความได้
ในแอปใดก็ได้โดยใช้สไตลัส ช่องป้อนข้อความ Android รวมถึง
EditText
คอมโพเนนต์และ
วิดเจ็ตข้อความ WebView
การสนับสนุน
อินพุตสไตลัสโดยค่าเริ่มต้น
อย่างไรก็ตาม หากแอปต้องใช้ช่องป้อนข้อความที่กำหนดเอง (โปรดดูข้อความที่กำหนดเอง) ผู้แก้ไข) หรือ มีรูปแบบที่ซับซ้อน ซึ่งมีฟิลด์สำหรับป้อนข้อความซ้อนทับบนพื้นผิวภาพวาด คุณจะ ต้องปรับแต่งแอป
EditText
เปิดใช้การเขียนด้วยลายมือโดยใช้สไตลัสในช่อง EditText
ทั้งหมดโดยค่าเริ่มต้นใน Android 14
และสูงกว่า เริ่มโหมดการเขียนด้วยลายมือสำหรับ EditText
เมื่อมีการเคลื่อนไหวของสไตลัส
ระบบจะตรวจพบเหตุการณ์ภายในขอบเขตการเขียนด้วยลายมือของมุมมอง
ขอบเขตของการเขียนด้วยลายมือประกอบด้วยระยะห่างจากขอบแนวตั้ง 40 dp และแนวนอน 10 dp
ระยะห่างจากขอบของมุมมอง ปรับขอบเขตการเขียนด้วยลายมือโดยใช้
setHandwritingBoundsOffsets()
ปิดใช้งานการเขียนด้วยลายมือด้วย
setAutoHandwritingEnabled(false)
การมอบสิทธิ์อินพุต
แอปสามารถแสดงองค์ประกอบ UI ที่เป็นตัวยึดตำแหน่งที่ปรากฏเป็นช่องป้อนข้อความ แต่ เป็นเพียงองค์ประกอบ UI แบบคงที่ ซึ่งไม่มีความสามารถในการป้อนข้อความ ค้นหา เป็นตัวอย่างทั่วไป การแตะองค์ประกอบ UI แบบคงที่จะทริกเกอร์การเปลี่ยน ไปยัง UI ใหม่ที่มีช่องป้อนข้อความที่ใช้งานได้ซึ่งเน้นสำหรับป้อนข้อมูล
การมอบสิทธิ์อินพุตสไตลัส
ใช้ API การมอบสิทธิ์การเขียนด้วยลายมือเพื่อรองรับการป้อนข้อมูลด้วยลายมือโดยใช้สไตลัสสำหรับ
ช่องป้อนข้อมูลตัวยึดตำแหน่ง (โปรดดู
setHandwritingDelegatorCallback()
และ
setIsHandwritingDelegate()
)
องค์ประกอบ UI ตัวยึดตำแหน่งได้รับการกำหนดค่าให้มอบสิทธิ์การเขียนด้วยลายมือให้กับฟังก์ชัน
เช่น
Kotlin
if (Build.VERSION.SDK_INT >= 34) { placeholderInputField.setHandwritingDelegatorCallback { showAndFocusDelegateInputField() } delegateInputField.setIsHandwritingDelegate(true) }
Java
if (Build.VERSION.SDK_INT >= 34) { placeholderInputField.setHandwritingDelegatorCallback(this::showAndFocusInputFieldDelegate); delegateInputField.setIsHandwritingDelegate(true); }
การเคลื่อนไหวของสไตลัสเหนือมุมมองช่องป้อนข้อความตัวยึดตำแหน่งจะเรียกใช้ Callback
Callback จะทริกเกอร์การเปลี่ยน UI เพื่อแสดงและโฟกัสอินพุตด้านฟังก์ชันการทำงาน
ด้วย โดยปกติแล้ว การใช้งาน Callback จะเหมือนกับการติดตั้งใช้งาน
สำหรับ Listener การคลิก
ในองค์ประกอบตัวยึดตำแหน่ง เมื่อช่องป้อนข้อมูลการทำงาน
สร้าง
InputConnection
โหมดการเขียนด้วยลายมือของสไตลัสจะเริ่มขึ้น
ดีไซน์ Material
com.google.android.material.search
ไลบรารีจะมี
SearchBar
และ
SearchView
ชั้นเรียน
เพื่ออำนวยความสะดวกในการใช้รูปแบบ UI ตัวยึดตำแหน่ง
ตัวยึดตำแหน่งและมุมมองการค้นหาที่ใช้งานได้เชื่อมโยงอยู่กับ
setUpWithSearchBar()
มอบสิทธิ์การเขียนด้วยลายมือได้ในไลบรารี Material โดยจะไม่มีส่วนเพิ่มเติมใดๆ ที่จำเป็นในแอป
ซ้อนทับกับพื้นที่สำหรับวาดภาพ
หากแอปของคุณมีพื้นผิวสำหรับวาดเขียนที่มีช่องข้อความวางซ้อนบนพื้นผิวนั้น
อาจต้องปิดใช้การเขียนด้วยลายมือของสไตลัสเพื่อให้ผู้ใช้วาดได้ โปรดดู
setAutoHandwritingEnabled()
การทดสอบ
การเขียนด้วยลายมือโดยใช้สไตลัสใช้งานได้ในอุปกรณ์ 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 — ช่องข้อความ
- เครื่องมือแก้ไขข้อความที่กำหนดเอง