我有几个复合小部件,它们都有dymaincally大小调整对象。
当我实例化一个复合小部件时,我希望它以百分比形式填充 容器,例如80%。
小部件中的每个对象都将增长到适合复合材料的内部,无论复合材料的大小如何,但复合材料本身不会以其容器的百分比增长。
这甚至可能吗?我已经尝试过.setWidth()方法,但这不会识别%asd参数。
我没有在复合窗口小部件类中设置大小。
我有一个调用类来实例化复合小部件,然后在新对象上调用setWidth()方法。
我会尝试你的方法,如果它有效,那么将它应用于我的问题。我会在获得更多信息后再次发布。
谢谢你的帮助: - )
答案 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);