Google Workspace插件首次打开时多行文本框显示为单行问题求助
问题分析与解决
这是Google Card Service的渲染bug,你的代码逻辑本身没有问题。
触发原因
首次加载插件卡片时,Card Service的渲染引擎可能没有正确同步setMultiline(true)属性与预设置的长文本内容,导致输入框以单行形式渲染;刷新卡片时,渲染流程重新执行,属性与内容的匹配逻辑正常触发,因此显示为多行。
临时修复方案
- 调整方法调用顺序
把setMultiline(true)提前到setValue()之前调用,让渲染引擎先识别多行属性,再加载长文本:
let input_txt = CardService.newTextInput() .setTitle("test") .setMultiline(true) // 移到setValue之前 .setValue("A long text which requieres that the text input is multiline because the text doesnt fit in a single line") .setFieldName("input_txt")
这个调整大概率能解决首次加载的显示问题,因为属性优先级被提前,渲染时会先按照多行布局处理输入框,再填充内容。
- 强制卡片重新渲染(备选)
如果上述方法无效,可以在卡片初始化后,通过CardService.newAction()触发一个轻量的回调,重新加载卡片内容。不过这个方案会增加一次服务器请求,仅作为备选。
内容的提问来源于stack exchange,提问作者MOS
相关产品推荐
相关产品推荐

