将复合的宽度设置为其容器的百分比

时间:2009-10-30 19:57:47

标签: gwt

我有几个复合小部件,它们都有dymaincally大小调整对象。

当我实例化一个复合小部件时,我希望它以百分比形式填充 容器,例如80%。

小部件中的每个对象都将增长到适合复合材料的内部,无论复合材料的大小如何,但复合材料本身不会以容器的百分比增长。

这甚至可能吗?我已经尝试过.setWidth()方法,但这不会识别%asd参数。


我没有在复合窗口小部件类中设置大小。

我有一个调用类来实例化复合小部件,然后在新对象上调用setWidth()方法。

我会尝试你的方法,如果它有效,那么将它应用于我的问题。我会在获得更多信息后再次发布。

谢谢你的帮助: - )

3 个答案:

答案 0 :(得分:1)

当然有可能.Composite setWidth()方法也识别%。你能给我你正在使用的示例代码吗?确保调用setWidth()方法必须在你的composite.try的initwidget()之后调用

public class Widget1 extends Composite{
 private VerticaPanel panel=new VerticalPanel();
 public Widget1(){
   initWidget(panel);
   setWidth("80%");
   panel.add(new Widget2());
  }
} 

public class Widget2 extends Composite{
 private VerticaPanel panel=new VerticalPanel();
 public Widget2(){
   initWidget(panel);
   setWidth("100%");
  }
} 

答案 1 :(得分:0)

这是我的测试复合类:

 **class CompositePane extends Composite {
//Define a panel that contains everything
private VerticalPanel compositePanel = new VerticalPanel();
private Button button1 = new Button("Button1");


public CompositePane(){//Start StatusPane constructor

    compositePanel.add(button1);
    initWidget(compositePanel);
    setWidth("100%");
    addStyleName("compositePanel");

}//End of StatusPane constructor


}//End of StatusPane class**

这是附加到此对象的样式,显示复合对象的边缘:

 .compositePanel{

 **border: 5px solid black;

}**

使用设定的像素值时,边框会按预期展开。

当使用100%时,它紧紧围绕按钮,我需要它触摸其容器的外边缘。

答案 2 :(得分:0)

谢谢。你在哪里添加这个CompositePanel。 CompositePanel.setWidth(“100%”)方法使这个compositePanel使用它父100%宽度。所以在你的情况下它的父宽度是less。尝试下面的例子。你会明白你的代码怎么做。现在边框宽度将是800px。

VerticalPanel parentPanel=new VerticalPanel();
parentPanel.setWidth("800");
parentPanel.add(new CompositePanel());
RootPanel.get().add(parentPanel);