Çevirmeli giriş

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 veya View.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" ve android: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 veya GONE, şuna ayarladığınızda requestFocus() öğ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 olarak requestFocus().

Ö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:

  1. 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.
  2. 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.
  3. Emülatörü Android Studio'dan çalıştırın.
  4. 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: