Bazı Wear OS cihazlarda fiziksel bir dönen yan düğme bulunur. Kullanıcı düğmesi, uygulamanızın mevcut görünümünü yukarı veya aşağı kaydırır. Bu tür girdilere dönen giriş.
Not: Bu kılavuz birincil olarak çevirmeli girişin kullanımı ile ilgilidir. Görünüm tabanlı kullanıcı arayüzleri. Wear OS için Compose'u kullanarak çevirmeli girişleri yönetme hakkında daha fazla bilgi için bkz. Oluşturma'da döndürmeli giriş.
Örneğin,
ScrollView
,
ListView
,
HorizontalScrollView
,
ve WearableRecyclerView
,
Wear gerekmeden odaklanılıyorsa çevirmeli girişi destekle
İşletim sistemine özel kod.
Odaklanma önemli bir ön koşuldur çünkü Android 9'da (API düzeyi)
28) ve daha yüksek olduğunda, görüntülemeler dolaylı olarak odaklanmaz.
En iyi uygulamalara odaklanma
Çevirmeli giriş etkinliklerine yanıt vermek için kaydırılabilir bir kapsayıcıya odaklanılmalıdır.
Döner giriş etkinlikleri görünümü baloncuk olarak açılmıyor
hiyerarşik olarak düzenlenmiştir. Odaklanmış görünüm yoksa veya odaklanılan görünüm şuradan false
değerini döndürürse:
View.onGenericMotionEvent()
,
etkinlik,
Activity.onGenericMotionEvent()
.
Çevirmeli giriş etkinliklerine yanıt vermeyle ilgili en iyi uygulamalar şunlardır:
- Varsayılan olarak bir etkinlik başlatırken, hatta bir
bir yöntem olsa bile odaklamaz.
odaklanılabilir. Görünümünüze odaklanabilmeniz için, görüntünün
<requestFocus />
. etiketini kullanabilir veyaView.requestFocus()
öğesini manuel olarak çağırabilirsiniz. - Özel kaydırılabilir görünümleri her ikisini de kullanarak odaklanılabilir olarak işaretleyin:
android:focusable="true"
veandroid:focusableInTouchMode="true"
. - Kaydırılabilir görünümünüz
Activity.onCreate()
tarihinden sonra eklendiyse Örneğin, kullanıcı arayüzünüzü oluşturmadan önce bir ağ isteğinin tamamlanmasını beklerken,requestFocus()
sonra görünür. - Kaydırılabilir görünümünüz başlangıçta
INVISIBLE
ise veyaGONE
, şuna ayarladığınızdarequestFocus()
öğesini ara:VISIBLE
. - Etkinliğinizde kaydırılabilir birden fazla görünüm varsa
<requestFocus />
. kapanış etiketinin hemen öncesine yapıştırın. Dönen yan düğmeyle iç içe yerleştirilmiş kaydırma desteklenmiyor. - Kullanıcı arayüzünüz, kullanıcı işlemi gerçekleştirdiğinde odaklanılan başka bir görünüm içeriyorsa
etkileşime girdiğini gösterir; örneğin,
InputText
, kullanıcıya odağı kaydırılabilir görünüme geri getirmesi için bir yol sunar Kaydırılabilir görünümde dokunmaları dinleyerek ve telefon ederek odağı kaybederse Yanıt olarakrequestFocus()
.
Özel rotasyon davranışı
Kaydırılabilir görünümünüz çevirmeli giriş kaydırmayı yerel olarak desteklemiyorsa veya çevirmeli çevirmeli girişinizi kaydırma dışında bir şey için kullanın. Örneğin, yakınlaştırmak, uzaklaştırmak veya kadranı çevirmek için - kaydırma etkinliklerini kendiniz. Görüntünüzün odaklandığından emin olun, aksi takdirde bu etkinlikler gerçekleşmeyecek.
Aşağıdaki kod snippet'i MotionEvent
,
InputDeviceCompat
,
ve ViewConfigurationCompat
görünümünüze özel kaydırma eklemek için:
Kotlin
myView.setOnGenericMotionListener { v, ev -> if (ev.action == MotionEvent.ACTION_SCROLL && ev.isFromSource(InputDeviceCompat.SOURCE_ROTARY_ENCODER) ) { // Don't forget the negation here val delta = -ev.getAxisValue(MotionEventCompat.AXIS_SCROLL) * ViewConfigurationCompat.getScaledVerticalScrollFactor( ViewConfiguration.get(context), context ) // Swap these axes to scroll horizontally instead v.scrollBy(0, delta.roundToInt()) true } else { false } }
Java
myView.setOnGenericMotionListener(new View.OnGenericMotionListener() { @Override public boolean onGenericMotion(View v, MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_SCROLL && ev.isFromSource(InputDeviceCompat.SOURCE_ROTARY_ENCODER) ) { // Don't forget the negation here float delta = -ev.getAxisValue(MotionEventCompat.AXIS_SCROLL) * ViewConfigurationCompat.getScaledVerticalScrollFactor( ViewConfiguration.get(context), context ); // Swap these axes to scroll horizontally instead v.scrollBy(0, Math.round(delta)); return true; } return false; } });
Emülatör kullanarak test etme
Çevirmeli girişi simüle etmek için Android Emülatör'ü kullanın Wear cihazda kaydırma işlemi yapılıyor. Çalışmak için emülatörde Wear uygulamanızı başlatın veya sürükleyerek APK dosyasını emülatöre ekleyebilirsiniz.
Emülatördeki çevirmeli girişi test etmek için:
- SDK yöneticisi'nde SDK araçları sekmesini kullanarak şu işlemleri yapabilirsiniz: Android Emulator 26.0.3 veya sonraki bir sürümü edinin.
- Android Studio'da Araçlar > seçeneğini belirleyin. Android > AVD Yöneticisi. API 25 ile yeni bir Wear cihaz oluşturun veya daha yüksek.
- Emülatörü Android Studio'dan çalıştırın.
- Emülatör araç çubuğunun alt kısmındaki üç nokta taşma menüsünü tıklayın. Önce Çevirmeli giriş arayüzünü açmak için yeni penceredeki döndürme girişi sekmesini açın ve döndürmeyi deneyin giriş kaydırma.
Aşağıdaki videoda emülatördeki çevirmeli giriş gösterilmektedir: