Codename One combobox造型

时间:2014-11-13 15:54:31

标签: combobox codenameone

请参见图片bolow:enter image description here

我无法摆脱组合框弹出窗口中的白色填充/边距。我在设计器中有两个自定义容器,名为DropdownItem和DropdownItemSelected,用于ComboBox渲染器的Fisheye渲染器类型。正如您在组合框中看到的那样,所选项目显示得很好。但是,我无法在没有白色填充的情况下显示组合框弹出窗口。我实际上使用PopupContentPane在弹出窗口周围添加蓝色边框,我也将边框设置为空,所有边距/填充设置为0以用于后续UIID:PopupItem,PopupFocus,DropdownItem和DropdownItemSelected。 PopupContentPane也将所有填充/边距设置为0.另请参阅我的内容:

enter image description here

我浏览了源代码,找不到任何其他有用的UIID我可以设置样式以删除这些白色填充。有人可以帮我这个吗?

更新

可能会有帮助 - 请参阅下面当PopupContentPane边界疾病设置为2px时弹出窗口的样子:

enter image description here

更新2:

几乎就在那里。将listItemGapInt常量设置为0后,我设法删除列表项之间的间隙。见下面的截图。

enter image description here

我仍然无法找到如何删除右边的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弹出窗口的一部分。

2 个答案:

答案 0 :(得分:0)

我设法消除了不必要的差距。正如我在'update 2'中提到的,listItemGapInt应设置为0以消除水平间隙。

垂直间隙与滚动条有关,但不清楚它是否是创建该间隙的垂直滚动条。我为Scroll UIID设置填充为0后,垂直间隙已经消失。

enter image description here

答案 1 :(得分:0)

关于更新3,这是一个错误,但不是因为它应该在容器中。该列表是可滚动的,因此这应该是列表的一部分,但是调用应该是l.getSideGap()而不是getVerticalScrollWidth()

这将允许您通过将滚动条设置为可见false等来隐藏它。我们将为下次更新修复该问题。

相关问题