Swipe -Verhalten in Lazyverticalgrid in Jetpack Compose [geschlossen]

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Swipe -Verhalten in Lazyverticalgrid in Jetpack Compose [geschlossen]

by Anonymous » 31 Aug 2025, 10:48

Ich versuche, Swipe über die Elemente zu erkennen, die in einem Lazyverticalgrid in Jetpack Compose platziert sind. Der Code sieht wie folgt aus: < /p>
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContent {
SwipeTestsTheme {
Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
SinglePlayerGameScreen(modifier = Modifier.padding(innerPadding))
}
}
}
}
}

@Composable
fun SinglePlayerGameScreen(modifier: Modifier) {

val configuration = LocalConfiguration.current
val screenWidthDp = configuration.screenWidthDp
val squareSizeDp = screenWidthDp / 10

LazyVerticalGrid(
horizontalArrangement = Arrangement.Center,
verticalArrangement = Arrangement.Top,
columns = GridCells.Fixed(10),
userScrollEnabled = false,
modifier = modifier.pointerInput(Unit) {

detectHorizontalDragGestures { offset, dragAmount ->
Log.d("Swipe Tests","Horizonzal drag $offset $dragAmount")
}
detectVerticalDragGestures { offset, dragAmount ->
Log.d("Swipe Tests","Vertical drag $offset $dragAmount")
}

}
) {
items(100) { index ->
BoardSquare(index, squareSizeDp)
}
}

}

@Composable
fun BoardSquare(index: Int, squareSizeDp: Int) {

Canvas(modifier = Modifier.width(squareSizeDp.dp).height(squareSizeDp.dp)) {
drawRect(color = Color.Blue, style = Stroke(width = 5f))
}

}
< /code>
Ich habe das Scrollen im Raster mit usercollenabled = false deaktiviert. Das Raster ist so erstellt, dass es vollständig in einen einzelnen Bildschirm passt. Wenn ich die DetecthorizontalDraggesture kommentiere, wird der vertikale Swipe erkannt. Wie kann ich dieses Verhalten ändern?

Top