You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Jetpack Compose:如何点击触发Tooltip并按需关闭

实现点击触发的RichTooltipBox

要实现点击Icon一次显示Tooltip、再次点击或点击外部区域关闭的效果,核心是手动控制TooltipState的显示状态,具体修改步骤如下:

  1. 持有TooltipState实例:将rememberTooltipState()提取为变量,方便后续手动调用状态控制方法
  2. 在点击事件中切换状态:根据当前Tooltip的显示状态,调用show()或hide()方法
  3. 保留外部点击关闭逻辑:TooltipBox本身已支持点击外部区域自动关闭Tooltip,无需额外处理

修改后的完整代码:

val tooltipState = rememberTooltipState()

TooltipBox(
    positionProvider = TooltipDefaults.rememberRichTooltipPositionProvider(),
    tooltip = { 
        RichTooltip(
            title = { Text("Smart Cycle") }, 
            text = { Text("If enabled, the cycle will automatically be detected, starting with the highest paycheck") }
        )
    },
    state = tooltipState
) {
    IconButton(onClick = {
        if (tooltipState.isVisible) {
            tooltipState.hide()
        } else {
            tooltipState.show()
        }
    }) {
        Icon(Icons.Default.Info, contentDescription = "info")
    }
}

关键说明

  • rememberTooltipState():创建并持有Tooltip的状态实例,包含isVisible状态以及show()/hide()控制方法
  • 点击事件逻辑:通过判断isVisible的值来切换Tooltip的显示/隐藏状态,实现点击切换的效果
  • 外部点击关闭:TooltipBox内部已经处理了点击组件外部区域自动隐藏Tooltip的逻辑,无需额外添加手势监听

内容的提问来源于stack exchange,提问作者Luca Christ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 21:39:53