Swipe -Verhalten in Lazyverticalgrid in Jetpack Compose [geschlossen]Android

Forum für diejenigen, die für Android programmieren
Anonymous
 Swipe -Verhalten in Lazyverticalgrid in Jetpack Compose [geschlossen]

Post by Anonymous »

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?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post