【发布时间】:2014-11-14 16:30:25
【问题描述】:
请看下图:
我无法摆脱组合框弹出窗口中的白色填充/边距。我在设计器中有两个自定义容器,称为 DropdownItem 和 DropdownItemSelected,ComboBox 渲染器的鱼眼渲染器类型。正如您在组合框中看到的那样,所选项目显示得很好。但是,在没有白色填充的情况下,我无法显示组合框弹出窗口。我实际上使用 PopupContentPane 在弹出窗口周围添加蓝色边框,我还将边框设置为空,所有边距/填充设置为 0 以用于以下 UIID:PopupItem、PopupFocus、DropdownItem 和 DropdownItemSelected。 PopupContentPane 也将所有填充/边距设置为 0。另请参阅我的内容:
我浏览了源代码,但找不到任何其他有用的 UIID 可以设置样式以删除这些白色填充。有人可以帮我解决这个问题吗?
更新:
可能会有所帮助 - 请参阅下面将 PopupContentPane 边框病设置为 2px 时弹出窗口的外观:
更新 2:
差不多了。将listItemGapInt 常量设置为 0 后,我设法消除了列表项之间的间隙。请看下面的截图。
我仍然不知道如何消除右侧 2 个像素的间隙,也不知道它是从哪里来的。将不胜感激任何想法/想法。
更新 3:
我最终找到了两个像素的来源。
com.codename1.ui.ComboBox 类,第 289-290 行
289 int listW = Math.max(getWidth() , l.getPreferredW());
290 listW = Math.min(listW + getUIManager().getLookAndFeel().getVerticalScrollWidth(),
parentForm.getContentPane().getWidth());
在我的特殊情况下,listW=630px 和第 290 行中的 listW 被重新计算为 Math.min(630 + 2, 768),其中 2px 是垂直滚动的宽度。
可以说,滚动条应该是 ComboBox 弹出框的一部分。
【问题讨论】:
标签: combobox codenameone