Döner giriş, saatinizin dönen veya dönen parçalarından gelen girişleri ifade eder. Şu tarihte: ortalama olarak, kullanıcılar kol saatiyle yalnızca birkaç saniyeliğine etkileşim kuruyor. Siz kullanıcınızın şunları yapmasına olanak sağlamak için Döner girişi kullanarak kullanıcı deneyiminizi geliştirebilir: çeşitli görevleri hızla yerine getirmeniz gerekir.
Çoğu kol saatinde çevirmeli girişin üç ana kaynağı, dönen taraftır. bir fiziksel çerçeve veya yuvarlak bir çerçeve olan dokunmatik çerçeve dokunun. Beklenen davranış konuma göre değişiklik gösterebilir tüm önemli etkileşimler için çevirmeli girişi desteklediğinden emin olun.
Kaydır
Çoğu kullanıcı, uygulamaların kaydırma hareketini desteklemesini bekler. İçerik ilerledikçe gibi yöntemlerle, kullanıcılara dönüşümlü etkileşimlere yanıt olarak görsel geri bildirim verebilir. Görsel geri bildirim, dikey kaydırma için konum göstergeleri veya sayfa göstergeleri hakkında daha fazla bilgi edinin.
ScalingLazyColumn
ve Picker
varsayılan olarak kaydırma hareketini destekliyor
ancak bu bileşenleri bir Scaffold
içine yerleştirmeniz gerektiği sürece. Scaffold
temel düzen yapısını sağlar
ve kaydırma göstergesi için de bir yeri var. Alıcı:
gösteren bir konum göstergesi oluşturun.
aşağıdaki kod snippet'inde gösterildiği gibi liste durumu nesnesini tanımlayın:
val listState = rememberScalingLazyListState() Scaffold( positionIndicator = { PositionIndicator(scalingLazyListState = listState) } ) { // ... }
ScalingLazyColumn
için tutturma davranışını yapılandırmak için şunları kullanabilirsiniz:
ScalingLazyColumnDefaults.snapFlingBehavior
, aşağıda gösterildiği gibi
kod snippet'i:
val listState = rememberScalingLazyListState() Scaffold( positionIndicator = { PositionIndicator(scalingLazyListState = listState) } ) { val state = rememberScalingLazyListState() ScalingLazyColumn( modifier = Modifier.fillMaxWidth(), state = state, flingBehavior = ScalingLazyColumnDefaults.snapFlingBehavior(state = state) ) { // Content goes here // ... } }
Özel işlemler
Ayrıca, uygulamanızdaki çevirmeli girişlere yanıt veren özel işlemler de oluşturabilirsiniz. Örneğin, örneğin, yakınlaştırma ve uzaklaştırma yapmak ya da bir medyadaki ses düzeyini kontrol etmek için çevirmeli girişleri kullanın. uygulamasını indirin.
Bileşeniniz ses seviyesi kontrolü gibi kaydırma etkinliklerini doğal olarak desteklemiyorsa kaydırma etkinliklerini kendiniz yönetebilirsiniz.
// VolumeScreen.kt
val focusRequester: FocusRequester = remember { FocusRequester() }
Column(
modifier = Modifier
.fillMaxSize()
.onRotaryScrollEvent {
// handle rotary scroll events
true
}
.focusRequester(focusRequester)
.focusable(),
) { ... }
Görünüm modelinde yönetilen bir özel durum ve kullanılan özel bir geri çağırma oluşturun çevirmeyi deneyin.
// VolumeViewModel.kt
object VolumeRange(
public val max: Int = 10
public val min: Int = 0
)
val volumeState: MutableStateFlow<Int> = ...
fun onVolumeChangeByScroll(pixels: Float) {
volumeState.value = when {
pixels > 0 -> min (volumeState.value + 1, VolumeRange.max)
pixels < 0 -> max (volumeState.value - 1, VolumeRange.min)
}
}
Basitlik açısından, önceki örnekte büyük olasılıkla aşırı hassas olacak.
Aşağıdaki snippet'te gösterildiği gibi, etkinlikleri aldıktan sonra geri çağırmayı kullanın.
val focusRequester: FocusRequester = remember { FocusRequester() }
val volumeState by volumeViewModel.volumeState.collectAsState()
Column(
modifier = Modifier
.fillMaxSize()
.onRotaryScrollEvent {
volumeViewModel
.onVolumeChangeByScroll(it.verticalScrollPixels)
true
}
.focusRequester(focusRequester)
.focusable(),
) { ... }
Sizin için önerilenler
- Not: JavaScript kapalıyken bağlantı metni gösterilir
- Odaklanma davranışını değiştirme
- Jetpack Compose ile klavye, fare, dokunmatik yüzey ve ekran kalemi desteği ekleyin
- Wear OS Codelab için Yazma