首页 > 解决方案 > Jetpack compose:BottomSheet 状态更改回调

问题描述

如何在 JetPack Compose BottomSheet 状态更改上实现回调/侦听器机制?

类似于:

   @Override  
   public void onStateChanged(@NonNull View bottomSheet, int newState) {  
     if (newState == BottomSheetBehavior.STATE_COLLAPSED && mIsCollapsedFromBackPress){
        
     }
   }  

  @Override  
  public void onSlide(@NonNull View bottomSheet, float slideOffset) {  
  }  
});

正如我们过去在 Java/Kotlin 中所做的那样。

现在,我将其作为 lambda 传递给另一个需要关闭底页的可组合对象。

    val closeSheet: () -> Unit = {
        scope.launch {
            modalState.hide()
        }
    }

但我想得到底部表已完全折叠的回调,我可以继续我的任务。

我面临的实际问题: 我正在单击按钮将可组合转换为位图。按钮位于 BottomSheet 内部,需要转换的可组合项位于 BottomSheet 后面。因此,有时底页也会出现在位图中。我只想在底页完全折叠时触发该过程。

我在 SO 上找到了这个答案,但问题仍然是关于回调的。不知道如何使用它。

标签: androidandroid-jetpack-composeandroid-jetpackbottom-sheet

解决方案


推荐阅读