为什么Vaadin ComboBox在执行setReadOnly(true)时会隐藏?
截图
正常
隐形
源代码
import java.util.List;
import com.vaadin.ui.ComboBox;
public class PropertyComboBox extends ComboBox
{
public PropertyComboBox(List<String> properties)
{
super();
for(String property: properties) {this.addItem(property);}
this.setImmediate(true);
this.setMultiSelect(false);
this.setNewItemsAllowed(false);
this.setInputPrompt("Property");
this.setReadOnly(true);
}
}
答案 0 :(得分:1)
当您将它们设置为只读时,所有组件都会“隐藏”。我找不到任何理由,也想知道。
我的建议(有点hacky):禁用组件并在CSS中更改其禁用的外观。
答案 1 :(得分:1)
Nexus是正确的,当设置为readOnly时,组件变得不可见。事实上,设置为只读时会添加“v-readonly”css类名,而CSS则会执行其余操作。
问候。
答案 2 :(得分:1)
如果您尝试创建一个用户无法写入任何内容的组合框,请查看NativeSelect组件。
来自API doc:
这是一个简单的下拉选项,例如,不支持多选,新项,延迟加载和其他高级功能。有时“原生”选择没有ComboBox的所有铃声和口哨是更好的选择。
如果您不需要这些功能,那么您应该定义考虑使用NativeSelect。