请参见图片bolow:
我无法摆脱组合框弹出窗口中的白色填充/边距。我在设计器中有两个自定义容器,名为DropdownItem和DropdownItemSelected,用于ComboBox渲染器的Fisheye渲染器类型。正如您在组合框中看到的那样,所选项目显示得很好。但是,我无法在没有白色填充的情况下显示组合框弹出窗口。我实际上使用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弹出窗口的一部分。
答案 0 :(得分:0)
我设法消除了不必要的差距。正如我在'update 2'中提到的,listItemGapInt应设置为0以消除水平间隙。
垂直间隙与滚动条有关,但不清楚它是否是创建该间隙的垂直滚动条。我为Scroll
UIID设置填充为0后,垂直间隙已经消失。
答案 1 :(得分:0)
关于更新3,这是一个错误,但不是因为它应该在容器中。该列表是可滚动的,因此这应该是列表的一部分,但是调用应该是l.getSideGap()
而不是getVerticalScrollWidth()
。
这将允许您通过将滚动条设置为可见false等来隐藏它。我们将为下次更新修复该问题。