Android 14 (API düzeyi 34) ve sonraki sürümler, kullanıcıların herhangi bir metin girişine yazmasına olanak tanır
herhangi bir uygulamada ekran kalemi kullanarak. Aşağıdakiler dahil olmak üzere Android metin girişi alanları:
EditText
bileşenleri ve
WebView
metin widget'ları, destek
varsayılan olarak ekran kalemi girişine dokunun.
Ancak, uygulamanız özel metin giriş alanları gerektiriyorsa (bkz. Özel metin düzenleyenler) veya bir çizim yüzeyinde metin giriş alanlarının yer aldığı karmaşık bir düzene sahipse, gerektiği konusunda karar vermemiz gerekir.
EditText
Android 14'te ekran kalemiyle el yazısı tüm EditText
alanları için varsayılan olarak etkindir
ve daha yüksek olabilir. Ekran kalemi hareket ettiğinde EditText
için el yazısı modu başlatılır
etkinliği algılanır.
El yazısı sınırları 40 dp dikey dolgu ve 10 dp yatay dolgu içerir.
dolgudur. El yazısı sınırlarını şununla ayarla:
setHandwritingBoundsOffsets()
.
El yazısını şununla devre dışı bırak:
setAutoHandwritingEnabled(false)
.
![Ekran kalemi hareketi etkinliklerinin algılanması sınırlarını gösteren, etrafını çevreleyen dikdörtgenin bulunduğu giriş alanı.](https://developer.android.google.cn/static/images/develop/ui/compose/touch-input/stylus-input/shared/edittext_handwriting_bounds.png?authuser=19&hl=tr)
EditText
alanlarının el yazısı sınırları.
Giriş yetkisi
Uygulamalar, metin giriş alanı gibi görünen yer tutucu kullanıcı arayüzü öğelerini gösterebilir, ancak aslında metin girişi özelliği olmayan statik kullanıcı arayüzü öğeleridir. Arama alanları yaygın bir örnektir. Statik kullanıcı arayüzü öğesine dokunduğunuzda bir geçiş tetiklenir girişe odaklanan işlevsel bir metin giriş alanı içeren yeni bir kullanıcı arayüzüne sahiptir.
Ekran kalemi girişi yetkisi
Şunlarda ekran kalemi el yazısı girişini desteklemek için el yazısı yetkilendirme API'lerini kullanın:
yer tutucu giriş alanları (bkz.
setHandwritingDelegatorCallback()
ve
setIsHandwritingDelegate()
).
Yer tutucu kullanıcı arayüzü öğesi, el yazısını işlevsel bir kullanıcıya
giriş alanı, örneğin:
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); }
Yer tutucu metin giriş alanı görünümü üzerinde ekran kaleminin yaptığı hareket, geri çağırmayı çağırır.
Geri çağırma, işlevsel girişi göstermek ve odaklamak için kullanıcı arayüzü geçişini tetikler
girin. Geri çağırma uygulaması, genellikle
kullanabilirsiniz. İşlevsel giriş alanı
oluşturur
InputConnection
ekran kalemi el yazısı modu başlar.
Materyal Tasarım
İlgili içeriği oluşturmak için kullanılan
com.google.android.material.search
kitaplığın sağladığı
SearchBar
ve
SearchView
sınıf
kullanın.
Yer tutucu ve işlevsel arama görünümleri
setUpWithSearchBar()
.
Malzeme kitaplığında el yazısı yetkisi, ek hiçbir en gerekli geliştirmeler vardır.
Çizim yüzeyleriyle çakışıyor
Uygulamanızda, yüzeyin üzerinde metin alanı bulunan bir çizim yüzeyi varsa
Kullanıcının çizim yapabilmesi için ekran kaleminin el yazısını devre dışı bırakması gerekebilir. Görüntüleyin
setAutoHandwritingEnabled()
.
Test
Ekran kalemiyle el yazısı, Android 14 ve sonraki sürümleri çalıştıran cihazlarda desteklenir. uyumlu ekran kalemi giriş cihazı ve giriş yöntemi düzenleyen (IME) Android 14 ekran kalemi el yazısı API'lerini destekler.
Ekran kalemi giriş cihazınız yoksa her cihazda ekran kalemi girişini simüle edin aşağıdaki Android Debug Bridge'i kullanarak kök erişimi (emülatörler dahil) ile (adb) komutları:
// 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
Desteklenmeyen bir cihaz kullanıyorsanız test için Gboard beta sürümünü kullanın ekran kalemi.
Ek kaynaklar
- Materyal Tasarım — Metin alanları
- Özel metin düzenleyiciler