barat
05/29/2022, 5:29 PMval scope = rememberCoroutineScope()
val focusRequester = remember { FocusRequester() }
LaunchedEffect(Unit) {
focusRequester.requestFocus()
}
Modifier
.onRotaryScrollEvent{
scope.launch{
scalingLazyListState.scollBy(it.verticalScrollPixels)
}
true
}
.focusRequester(focusRequester)
.focusable()
What I additionally found out about this is that focuseRequester() and focasable() must not be above onRotaryScrollEvent{}.
• working
.onRotaryScrollEvent{
scope.launch{
scalingLazyListState.scollBy(it.verticalScrollPixels)
}
true
}
.focusRequester(focusRequester)
.focusable()
• not working
.focusRequester(focusRequester)
.focusable()
.onRotaryScrollEvent{
scope.launch{
scalingLazyListState.scollBy(it.verticalScrollPixels)
}
true
}
yschimke
05/29/2022, 7:05 PMyschimke
05/29/2022, 7:06 PM/**
* Adds Rotary support (for devices that have a rotating bezel) to scrollable screens.
* The screen containing the scrollable item must request focus as appropriate, usually
*
*
* LaunchedEffect(Unit) {
* focusRequester.requestFocus()
* }
* */
@ExperimentalHorologistComposeLayoutApi
public fun Modifier.scrollableColumn(
focusRequester: FocusRequester,
scrollableState: ScrollableState
): Modifier = composed {
val coroutineScope = rememberCoroutineScope()
onPreRotaryScrollEvent {
coroutineScope.launch {
scrollableState.scrollBy(it.verticalScrollPixels)
}
true
}
.focusRequester(focusRequester)
.focusable()
}
yschimke
05/29/2022, 7:08 PMyschimke
05/29/2022, 7:08 PMimplementation "com.google.android.horologist:horologist-compose-layout:0.0.21"
barat
05/30/2022, 1:16 AMTgo1014
06/11/2022, 2:29 AMyschimke
06/11/2022, 6:04 AMyschimke
06/11/2022, 6:04 AMyschimke
06/11/2022, 6:05 AMyschimke
06/11/2022, 6:06 AMyschimke
06/11/2022, 6:07 AMJohn Nichol
06/11/2022, 10:51 AMTgo1014
06/11/2022, 3:26 PM