必须用单列布局嵌套按钮组+条件绑定实现三态交互;创建“新闻三态交互卡片”模板,拖入单列布局为根容器,再嵌套按钮组设3个按钮或手动组合并限制最大宽度;绑定btn_action_type变量及news_url,通过函数节点动态赋值确保链接正确生效。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在扣子中让一张卡片同时支持“收藏”“分享”“跳转详情”三种不同动作,且按钮排列随内容长度自动调整不换行错位,必须用单列布局嵌套按钮组+条件绑定,不能直接堆砌独立按钮组件——否则飞书客户端里按钮会挤成一排超出卡片宽度,用户点不到最右侧按钮。
创建带自适应按钮组的卡片模板
登录扣子官网 → 点击左上角「资源库」→ 顶部导航栏切换到「卡片」→ 点击右上角「+ 创建卡片」。
创建后立即点击左上角默认名称“新卡片”,改为“新闻三态交互卡片”——名称含业务含义,后续在工作流里选卡片时能快速识别用途。
从左侧「组件」面板拖入一个「单列布局」组件。这是整张卡片唯一的根容器,【所有其他组件必须嵌套在它内部,否则保存失败】。
搭建响应式按钮组结构
方法一:使用「按钮组」组件(推荐)
在「单列布局」内,直接拖入「按钮组」组件 → 右侧属性栏将「按钮数量」设为3 → 分别设置三个按钮的文字为“收藏”“分享”“查看详情”。
方法二:手动组合(需控制宽度)
拖入三个独立「按钮」组件 → 依次选中每个按钮 → 右侧「样式」中将「宽度」统一设为“fit-content” → 再将三个按钮一起拖进一个「水平布局」组件中 → 设置该水平布局的「对齐方式」为“居中”,「间距」设为8px。
⚠️ 注意:若用方法二,必须给水平布局加「最大宽度」限制(如320px),否则在飞书小屏手机上按钮会横向溢出,用户滑动才能点到第三个按钮。
绑定动态按钮行为与变量
第一步:点击顶部「变量」→「新建变量」→ 创建变量名btn_action_type,类型选String,默认值填"detail"。
第二步:点击第一个按钮(收藏)→ 右侧「链接地址」栏点击「fx」→ 选择「表达式」→ 输入{{btn_action_type == "favorite" ? "https://api.coze.com/fav" : ""}}。
第三步:点击第二个按钮(分享)→ 同样打开「链接地址」表达式 → 输入{{btn_action_type == "share" ? "https://api.coze.com/share" : ""}}。
第四步:点击第三个按钮(查看详情)→ 表达式填{{btn_action_type == "detail" ? news_url : ""}} —— 这里news_url是工作流已返回的变量,【必须确保news_url变量类型为String,若为Text类型则链接为空】。
配置按钮状态联动逻辑
进入工作流编辑页 → 在「发送消息」节点前添加一个「函数节点」。
粘贴以下代码:
```python
def set_button_state(news_item):
return {
"btn_action_type": "detail",
"news_url": news_item.get("url", "")
}
```
将插件或大模型输出的news_item对象连接至此函数节点输入 → 函数输出连接至「发送消息」节点的变量映射区 → 把返回的btn_action_type和news_url分别绑定到卡片对应变量。
这一步操作起来很简单,直接把函数节点拖进去接上线就行。但若跳过函数节点、试图在卡片里用纯表达式判断用户点击意图,扣子不支持运行时监听按钮点击事件——按钮链接只能预设,无法根据用户实时操作动态改写。











