JavaFX TableView通过CSS设置-fx-fixed-cell-size不生效问题求助
问题原因
-fx-fixed-cell-size是TableView控件本身的CSS属性,对应Java方法TableView.setFixedCellSize(),作用是开启虚拟控件的固定尺寸渲染优化,需要直接作用在TableView节点上,而非子节点.table-row-cell。- 你之前将该属性写在
.table-row-cell选择器下,属性作用的节点层级错误,因此不生效。 - 而
-fx-cell-size是TableRow/TableCell本身的属性,所以写在行选择器下可以正常生效,二者的作用层级和设计用途不同。
解决方法
修改你的CSS规则,把-fx-fixed-cell-size属性写在TableView对应的ID选择器下即可:
/* 直接作用于id为viewtable的TableView节点 */ #viewtable { -fx-fixed-cell-size: 80px; } /* 原有行样式规则保留,仅移除里面的-fx-fixed-cell-size配置 */ #viewtable .table-row-cell { -fx-text-background-color: #7f7f7f; }
- 修改后无需再调用Java代码
myTable.setFixedCellSize(80);,CSS配置即可正常生效,效果和Java代码调用完全一致。 - 如果你不需要用到TableView的固定尺寸渲染优化,也可以继续保留原来的
-fx-cell-size配置在行选择器下,同样能达到修改行高的效果。
内容的提问来源于stack exchange,提问作者Phaelax
相关产品推荐
相关产品推荐

