在UI服务中混合面板

时间:2013-11-01 14:55:38

标签: google-apps-script

我一直在尝试启动我的新网络应用项目。我想首先使用GAS,UI Service开始创建我的主用户界面。

但是在混合到各种类型的面板后,它似乎不起作用。

我到底在做什么。

function doGet() {
  var app = UiApp.createApplication();

  var westPanel = app.createVerticalPanel()
  .add(app.createButton("Button 1"))
  .add(app.createButton("Button 2"))
  .add(app.createButton("Button 3"));

  var centerPanel = app.createVerticalPanel()
  .add(app.createHTML('Some Text.....'));

  var splitPanel = app.createSplitLayoutPanel()
  .addWest(westPanel, 150)
  .add(centerPanel)
  .setHeight('100%').setWidth('100%');

  var tabPanel = app.createDecoratedTabPanel()
  .add(splitPanel, 'Finances')
  .setHeight('100%').setWidth('100%');

  app.add(tabPanel);

  return app;
}

亲切的问候

1 个答案:

答案 0 :(得分:2)

Apps脚本UiApp在幕后使用GWT。这里的问题是SplitLayoutPanel(GWT 布局面板)不能与TabPanel(非布局面板)一起使用。我的理解是,第一个要求父母的高度,而父母的高度又要求孩子的身高。没有人会高兴,面板崩溃。

如果我们在Apps脚本中有GWT TabLayoutPanel,它将是您的解决方案。但我们没有,甚至不愿意在问题跟踪器上请求UiApp的任何增强,因为他们(Google Apps脚本团队)多次声明他们不会付出任何努力,因为这样做去的是HtmlService。如果您发现不可行的情况,请在HtmlServices中执行或不使用Apps脚本。

以下是一个很好的解释:为什么这不起作用:gwt ScrollPanel in TabPanel: no vertical scrollbar