Skip to content

Commit

Permalink
Merge pull request android#330 from android/wear
Browse files Browse the repository at this point in the history
Add snap for rotary for SLC
  • Loading branch information
kul3r4 authored Sep 5, 2024
2 parents 5bbe640 + 23712af commit b2a0075
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 4 deletions.
4 changes: 2 additions & 2 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ recyclerview = "1.3.2"
# @keep
targetSdk = "34"
version-catalog-update = "0.8.3"
wearComposeFoundation = "1.3.0"
wearComposeMaterial = "1.3.0"
wearComposeFoundation = "1.4.0"
wearComposeMaterial = "1.4.0"
composeUiTooling = "1.3.1"

[libraries]
Expand Down
49 changes: 47 additions & 2 deletions wear/src/main/java/com/example/wear/snippets/rotary/Rotary.kt
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.runtime.Composable
Expand All @@ -45,9 +46,12 @@ import androidx.compose.ui.input.rotary.onRotaryScrollEvent
import androidx.compose.ui.unit.dp
import androidx.wear.compose.foundation.ExperimentalWearFoundationApi
import androidx.wear.compose.foundation.lazy.ScalingLazyColumn
import androidx.wear.compose.foundation.lazy.ScalingLazyColumnDefaults
import androidx.wear.compose.foundation.lazy.rememberScalingLazyListState
import androidx.wear.compose.foundation.rememberActiveFocusRequester
import androidx.wear.compose.material.Chip
import androidx.wear.compose.material.ChipDefaults
import androidx.wear.compose.material.ListHeader
import androidx.wear.compose.material.MaterialTheme
import androidx.wear.compose.material.Picker
import androidx.wear.compose.material.PositionIndicator
Expand Down Expand Up @@ -204,6 +208,47 @@ fun TimePicker() {
// [END android_wear_rotary_input_picker]
}

@Composable
fun SnapScrollableScreen() {
// This sample doesn't add a Time Text at the top of the screen.
// If using Time Text, add padding to ensure content does not overlap with Time Text.
// [START android_wear_rotary_input_snap_fling]
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
// [START_EXCLUDE]
item { ListHeader { Text(text = "List Header") } }
items(20) {
Chip(
onClick = {},
label = { Text("List item $it") },
colors = ChipDefaults.secondaryChipColors()
)
}
// [END_EXCLUDE]
}
}
// [END android_wear_rotary_input_snap_fling]
}

@WearPreviewDevices
@WearPreviewFontScales
@Composable
fun TimePickerPreview() {
TimePicker()
}

@WearPreviewDevices
@WearPreviewFontScales
@Composable
Expand All @@ -214,6 +259,6 @@ fun ScrollableScreenPreview() {
@WearPreviewDevices
@WearPreviewFontScales
@Composable
fun TimePickerPreview() {
TimePicker()
fun SnapScrollableScreenPreview() {
SnapScrollableScreen()
}

0 comments on commit b2a0075

Please sign in to comment.