我有一个固定大小的列表框,宽度= 200px,但列表框大小的内容更多。所以我只想增加下拉列表宽度。这怎么办?< / p>
答案 0 :(得分:1)
我认为您应该将listbox
样式设置为您想要的宽度,并且选项下拉菜单将自动调整为选项元素大小(或者您可以使用.gwt-ListBox CSS类来定义任何CSS样式) ,
ListBox listBox = new ListBox();
listBox.getElement().getStyle().setWidth(200, Unit.PX);
listBox.addItem("AAA");
listBox.addItem("AAAAAA");
listBox.addItem("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
listBox.addItem("AAADDDDDDDDD");
如果要设置下拉元素的样式,可以通过在列表框中添加一个类然后设置选项样式来实现,
listBox.addStyleName("myListBox");
的CSS
.myListBox {
width:200px;
}
.myListBox option {
width:500px;
}
<强>更新强>
有一种方法
listBox.addMouseDownHandler(new MouseDownHandler()
{
@Override
public void onMouseDown(MouseDownEvent event)
{
listBox.addStyleName("expand");
}
});
listBox.addBlurHandler(new BlurHandler()
{
@Override
public void onBlur(BlurEvent event)
{
listBox.addStyleName("normal");
}
});
listBox.addChangeHandler(new ChangeHandler()
{
@Override
public void onChange(ChangeEvent event)
{
listBox.addStyleName("normal");
}
});
.normal
{
width=200px;
}
.expand
{
width : auto;
}
简单来说,在查看选项时将宽度设置为自动,否则将其设置为默认值。