【发布时间】:2016-05-10 05:44:06
【问题描述】:
一直在努力解决这个问题。
我希望将列表单元格限制为父 ListView 的宽度,并且如果文本被剪裁/溢出,则包含的文本显示省略号。
但无论我做什么,所有单元格的宽度都会增长到这些单元格中最长文本的长度。超出单元格中的文本被“剪辑”,而不是我想要的省略号。
我的 ListView 是在 fxml 中定义的:
<BorderPane fx:id="listViewResultsParentPane">
<center>
<ListView fx:id="listViewResults"/>
</center>
</BorderPane>
我有一个列表单元类:
public class ResultsListCell extends ListCell<ResultsListItem> {
@Override
public void updateItem(final ResultsListItem item, final boolean empty) {
super.updateItem(item, empty);
if(empty || item == null){
setText("");
} else {
setText(item.title);
setTextOverrun(OverrunStyle.ELLIPSIS);
setEllipsisString("...");
}
}
}
为了摆脱水平滚动条,我正在使用这个 css:
.list-view#listViewResults .scroll-bar:horizontal .increment-arrow,
.list-view#listViewResults .scroll-bar:horizontal .decrement-arrow,
.list-view#listViewResults .scroll-bar:horizontal .increment-button,
.list-view#listViewResults .scroll-bar:horizontal .decrement-button {
-fx-padding:0;
}
设置/限制我尝试过的单元格的宽度:
- 将每个单元格的宽度设置为父单元格的宽度,在 updateCell 调用。
- 绑定 prefHeight 和 maxHeight 属性 每个单元格到父单元格
- 将单元格 css 属性的 maxHeight 和 prefHeight 设置为 100%
任何帮助将不胜感激。
【问题讨论】:
标签: javafx-8