Jetpack
androidx.compose.material3
cho phép người dùng ghi vào bất kỳ thành phần TextField
nào trong
bất kỳ ứng dụng nào dùng bút cảm ứng.
Để bật tính năng nhập bằng bút cảm ứng theo mặc định, hãy thêm phần phụ thuộc thư viện vào
Tệp 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
Theo mặc định, tính năng viết tay bằng bút cảm ứng được bật cho tất cả thành phần của TextField
Android 14 trở lên và
androidx.compose.foundation:foundation:1.7.0
phần phụ thuộc. Chế độ viết tay đã được kích hoạt cho TextField
khi bút cảm ứng chuyển động
sự kiện được phát hiện trong giới hạn chữ viết tay của thành phần.
Giới hạn viết tay bao gồm khoảng đệm dọc 40 dp và chiều ngang 10 dp khoảng đệm xung quanh trường nhập dữ liệu.
![Trường nhập dữ liệu có hình chữ nhật xung quanh cho biết giới hạn phát hiện các sự kiện chuyển động của bút cảm ứng.](https://developer.android.google.cn/static/images/develop/ui/compose/touch-input/stylus-input/shared/edittext_handwriting_bounds.png?authuser=19&hl=vi)
TextField
.
Không hỗ trợ viết tay bằng bút cảm ứng cho các trường TextField
khi phương thức nhập
được yêu cầu chỉnh sửa với KeyboardType.Password
.
Uỷ quyền dữ liệu đầu vào
Ứng dụng có thể cho thấy các phần tử giữ chỗ trên giao diện người dùng trông giống như các trường nhập dữ liệu văn bản thực ra chỉ là các thành phần tĩnh trên giao diện người dùng không có tính năng nhập văn bản. Tìm kiếm là một ví dụ phổ biến. Thao tác nhấn vào phần tử tĩnh trên giao diện người dùng sẽ kích hoạt hiệu ứng chuyển đổi sang giao diện người dùng mới có chứa trường nhập dữ liệu chức năng làm tiêu điểm cho nhập dữ liệu.
Uỷ quyền nhập bằng bút cảm ứng
Sử dụng API uỷ quyền chữ viết tay để hỗ trợ tính năng nhập bằng chữ viết tay bằng bút cảm ứng cho
các trường nhập phần giữ chỗ (xem handwritingDetector
và
handwritingHandler
). Phần giữ chỗ trên giao diện người dùng là
được định cấu hình để uỷ quyền chữ viết tay cho trường nhập dữ liệu chức năng. Ví dụ
triển khai, xem
HandwritingDetectorSample.kt
.
Chế độ viết tay bằng bút cảm ứng bắt đầu khi trường nhập chức năng nhận được tiêu điểm và
tạo ra một
InputConnection
.
Thử nghiệm
Viết tay bằng bút cảm ứng được hỗ trợ trên các thiết bị Android 14 trở lên có thiết bị đầu vào tương thích bằng bút cảm ứng và phương thức nhập trình chỉnh sửa (IME) mà hỗ trợ API viết tay bằng bút cảm ứng cho Android 14.
Nếu bạn không có thiết bị đầu vào bằng bút cảm ứng, hãy mô phỏng phương thức nhập bằng bút cảm ứng trên bất kỳ thiết bị nào có quyền truy cập thư mục gốc (bao gồm cả trình mô phỏng) bằng cách sử dụng Cầu gỡ lỗi Android sau đây (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
Sử dụng Gboard beta để thử nghiệm nếu bạn đang sử dụng thiết bị không hỗ trợ bút cảm ứng.
Tài nguyên khác
- Material Design – Trường văn bản
- Xử lý hoạt động đầu vào của người dùng