在GWT中如何单独更改列表框下拉列表大小?

时间:2014-01-14 07:28:06

标签: gwt

我有一个固定大小的列表框,宽度= 200px,但列表框大小的内容更多。所以我只想增加下拉列表宽度。这怎么办?< / p>

1 个答案:

答案 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");

enter image description here enter image description here

如果要设置下拉元素的样式,可以通过在列表框中添加一个类然后设置选项样式来实现,

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;
}

简单来说,在查看选项时将宽度设置为自动,否则将其设置为默认值。