2017-04-22 34 views
0

我想让我的列表单元格在悬停时显示为“指针”/“保持”游标。 我已经设法瞄准整个listView并添加了背景色等,但它就像列表单元格不存在一样。我是否需要手动设置细胞工厂?为什么不能修改ListView中的list-cell css?

编辑: 我得到了答案,我不需要手动指定单元格,调用.list-cell应该足以添加样式。我的CSS应该工作得很好,因为我管理改变其他元素的背景颜色,而不是.list-cell。我也曾尝试FX-光标

EDIT2: 我现在已经scenebuilder预览中测试>场景样式表>添加一个样式表,以及文档中我把:

.list-cell{ 
-fx-cursor: pointer; 
} 
.test{ 
-fx-background-color: black; 
} 

仍然没有去的时候我预览了示例数据。

编辑3: Screenshot 光标不显示在屏幕截图中,但我可以告诉你,我的CSS工作,只是不在列表单元格。

到目前为止,我已经试过:

CSS:

.list-cell{ 
    -fx-background-color:black; 
    -fx-cursor: pointer; 
} 
#test .list-cell{ 
    -fx-background-color:black; 
    -fx-cursor: pointer; 
} 
.test .list-cell{ 
    -fx-background-color:black; 
    -fx-cursor: pointer; 
} 

JAVA:

teamListView.setCellFactory(new Callback<ListView<String>, 
javafx.scene.control.ListCell<String>>() 
     { 
      @Override 
      public ListCell<String> call(ListView<String> teamListView) 
      { 
       return new ListCell(); 
      } 
     }); 

代码:

我的控制器:

public class MainPageController implements Initializable { 
    public static ObservableList<String> data = 
FXCollections.observableArrayList(); 

    @FXML 
    private Label label; 
    @FXML 
    private ListView<String> teamListView; 

    @Override 
    public void initialize(URL url, ResourceBundle rb) { 
     Team escala = new Team("Escala", "Conrad Adams", 4987000); 
     ArrayList<Team> teams = new ArrayList<Team>(); 
     teams.add(escala); 
     data.add(teams.get(0).getName()); 
     teamListView.setItems(data); 

    }  

} 
+0

您不需要自定义cellFactory,但第二个css规则无效。此外,你从来没有使用'-fx-cursor'属性......我们也不能确定你实际上是使用'id'作为列表单元的祖先的id。 – fabian

+0

即时通讯只是使用背景颜色作为测试,背景是不会改变这是问题 – Softy

+0

你有没有正确地添加样式表?该CSS应该工作,当我测试它... – fabian

回答

0

我得到了一个解决方法,我没有,虽然一个解释:

改变

.list-cell{ 
-fx-cursor: hand; 
} 

.list{ 
} 
.list-cell:filled:hover{ 
-fx-cursor: hand; 
-fx-text-fill: dimgrey; 
} 

我的第一个CSS元素似乎以某种方式忽略,它们的位置可能变激活

相关问题