用固定尺寸的块和滚动面板填充垂直面板

时间:2013-02-06 21:12:23

标签: google-apps-script

我想要一个用户界面填充物理显示器,外面没有滚动条,并调整到不同大小/宽高比的显示。基本空间分为2个垂直面板。其中一个面板旨在具有固定部分和可滚动区域。

    function doGet() {
  var app = UiApp.createApplication();
  // overall panel to fill available display
//  var container = app.createSimplePanel().setSize("100%","100%");
  // Contains a panel to be divided in two  
  var outer = app.createHorizontalPanel().setSize("100%","100%");
  // Two vertical panels (equal size) filling available space within outer   
  var p1 = app.createVerticalPanel().setSize("100%","100%");
  var p2 = app.createVerticalPanel().setSize("100%","100%");
  // Left hand panel p2 holds two  panels. One fixed height
  var p4 = app.createVerticalPanel().setSize("100%","20PX"); 
  var scrollPanel = app.createScrollPanel().setId('sp').setTag('Empty').setSize("100%","100%");
  // The scroll panel is to hold a variable number of elements and use the space available to display the maximum
  // demonstrated by a vertical panel with label widgets
  var p3 = app.createVerticalPanel().setSize("100%","100%");
  for (i=0;i<100;i++){
    var lab4 = app.createLabel("Te"+(i+4)).setSize("100%","100%");
    p3.add(lab4);
  }
   scrollPanel.add(p3);
  // label to occupy fixed space above scrolled  list
  var lab1 = app.createLabel    ("Testing********************************************************************************************************************************************************************1");

  // label at top of right hand panel
  var lab2 = app.createLabel("Testing********************************************************************************************************************************************************************2");



  p2.add(lab2);
  p4.add(lab1);
  // scroll panel below label panel
 p1.add(p4)
  p1.add(scrollPanel);
  // add some formatting to make panels show up
  applyCSS(outer,_outerContainer)
  applyCSS(p1,_innerContainer)
  applyCSS(p4,_outerContainer)
  applyCSS(p2,_innerContainer)
  applyCSS(p3,_innerContainer)
  outer.add(p1).add(p2);
 // container.add(outer);
  //app.add(container);
  app.add(outer);
  return app;
}

(1)我应该怎样做才能将显示器划分为2个相同尺寸的面板?大小似乎取决于内容的相对大小。 (2)如何让垂直面板P1在可用的物理空间内最大化滚动面板的大小?编码后,固定块正确放置,滚动面板从包含垂直面板的中间开始。

1 个答案:

答案 0 :(得分:0)

经过一些试验和错误......答案是

(1.1)使用绝对面板而不是垂直面板。

(1.2)了解宽度和高度规格是关于内容的,因此您必须允许填充和边距。没有那些,通过宽度50%AbsolutePanel实现划分为2个相等的列。

(2)使用高度为30PX的AbsolutePanel和高度为100%的垂直面板将第一列拆分为2(包含scrollPanel) 结果......全宽&amp;高度显示,外面没有滚动条;电脑显示器上滚动面板上的滚动条;全宽&amp;高度显示,外面没有滚动条;滚动面板中的可滚动显示(无滚动条)在i-pad上以任一方向显示;