JavaFX 2.2 - 隐藏ListCell中progressIndicator的百分比

时间:2013-02-05 14:08:24

标签: css javafx-2

我有一个ListCell,其中我显示了ProgressIndicator下载文件的进度信息。

我的问题是删除指标下方显示的百分比信息。如上所述here,我在我的CSS中加入了一条规则如下:

.customProgressIndicator .percentage{
    visibility: hidden;
    -fx-text-background-color: red;
}

-fx-text-background-color: red部分只是为了确保我们的css应用于节点。

问题是,我打了一个像indicator.setProgress(progress)这样的电话,百分比变得可见(红色),当我将光标悬停在指示器上时,它再次变得不可见。最后,在“indicator.setProgress(1.0)”电话会议结束时,“完成”文字会在底部显示,并在悬停后再次变为不可见。

可能与ListView有关,因为;在悬停并使其变为不可见后,如果我从List移除某个项目并导致updateItem ListCell,则会再次显示该项目。

我尝试了一种解决方法:

    Text text = (Text)indicator.lookup(".percentage");
    if ( text != null )
    {
        text.setText("");
    }

text 有时 null,有时不是。

1 个答案:

答案 0 :(得分:10)

注意:

1)我读了您链接的帖子,OP隐含地确认visibility: hidden;对他/她有效。但我测试了相同的代码,但它无法正常工作。可能是由于版本差异。我不知道。

2)-fx-text-background-color不是CSS属性。它是caspian.css中的预定义颜色。因此,更改它会隐式更改百分比标签的颜色,在

中定义为默认值
.progress-indicator .percentage {
    -fx-font-size: 0.916667em; /* 11pt - 1 less than the default font */
    -fx-fill: -fx-text-background-color;
}
caspian.css的

(请注意上面的-fx-text-background-color

3)最后,你想要的效果可以通过

来完成
.customProgressIndicator .percentage {
    -fx-fill: null;
}

P.S。我还没有在列表视图中测试进度指示器。