由于我为特定的 ListView
使用了 自定义单元格,因此我很难理解如何删除每个单元格之间“自然”边距/间距以及更糟糕的是单元格的右侧和左侧的空白。
以下是示例:
]1
正如您所看到的,我使用一种颜色来突出显示每个单元格。您无法看到单元格末尾的空格(在其右侧),因为我需要滚动,但您可以相信我,白色空间在每侧都是相等的(尽管左右两边更大…),这与设计这些单元格的目的不符,因为它们的宽度应该与ListView
一样大,从而无需使用水平滚动。我的问题有点违背了我的初衷...
每个单元格由一个具有图像和一个标签的 AnchorPane 组成。AnchorPane
以黄色绘制(-fx-background-color: yellow;
)。
如您所见,单元格周围都有这些空白区域。
顺便提一下,我正在使用 JavaFX 8 / 2.2 SDK,但我打算使用 JFoenix 的 JFXListView
和 JFXListCell
。然而,使用它们的间距更大。
奇怪的是:我还将 ListView
绘制成绿色,但是并没有看到这样的颜色。我想所有的单元格(包括空的单元格)都覆盖了 ListView
的内容,因此不看到其背景是有道理的。然而,这意味着单元格在某种程度上被“损坏”,因为我的单元格周围添加了白色空白。
我尝试将所有内容的填充设置为0,但是无效。
最后,在 onUpdateItem
方法中,我调用了 super 方法,当单元格未被标记为空时,我将图形设置为上述 AnchorPane,否则我将其设置为null,这与我的屏幕截图完全一致。
感谢您的帮助!
ListCell
的构造函数中添加了setStyle("-fx-padding: 0px;");
,并且在使用普通的ListView
时它起到了作用。接下来是JFXListView
和JFXListCell
。但是它没有起作用。因为正如您所说,“onUpdateitem”做了很多事情。其中一个明显的错误是,如果item不是一个Node
,则会调用setText(item.toString())
。这会在我的graphic
右侧显示实例和类名。此外,它还覆盖了样式。因此,我必须在调用超级方法后调用setStyle("-fx-padding: 0px;");
以及setText(null)
。我会标记您的答案;-) - Mackovich