Skip to content

Click and DoubleClick gestures blocked when using ReorderableItem on clickable images in LazyVerticalGrid #114

@csacchetti

Description

@csacchetti

Description:
Using the Reorderable library (sh.calvin.reorderable:reorderable) in a LazyVerticalGrid with clickable image items completely blocks both  onClick  and  onDoubleClick  callbacks from  combinedClickable , even when using  longPressDraggableHandle()  and proper Modifier ordering.
Reproduction Steps
1. Create LazyVerticalGrid with  detectReorder()  modifier
2. Use  ReorderableItem  for grid items containing Images
3. Apply  combinedClickable  on Box before  .longPressDraggableHandle() 
4. Try tapping or double-tapping items
Expected: Tap →  onClick , Double-tap →  onDoubleClick , Long-press → drag reorder
Actual: No click/doubleClick callbacks fire at all, only drag works

Code Sample

ReorderableItem(reorderableState, key = image.id) { isDragging ->
    Box(
        modifier = Modifier
            .aspectRatio(1f)
            .combinedClickable(  // NEVER FIRED
                onClick = { /* blocked */ },
                onDoubleClick = { /* blocked */ }
            )
            .longPressDraggableHandle(onDragStarted = { /* works */ })
            // ... other modifiers
    ) {
        Image(/* image */)
    }
}

Attempts Made (All Failed)
•  combinedClickable  before/after  longPressDraggableHandle() 
• Shared  MutableInteractionSource  between both modifiers
•  detectReorderAfterLongPress()  instead of  detectReorder() 
• Custom  pointerInput  with manual gesture detection
The library appears to aggressively consume all pointer input on the entire item area, making it impossible to have clickable content alongside reordering in grids.

Environment:
• Jetpack Compose: 1.6.x+
• Target: API 34+
• Device: Pixel 8 (real device testing)
Could you please investigate if there’s a configuration that allows both clickable items AND drag reordering, or confirm this is a known limitation? Happy to provide full reproducible sample if needed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions