listview计算高度为空

java.lang.RuntimeException: Unable to start activity ComponentInfo{****}: java.lang.NullPointerException

在listview的自布局中必须使用LinearLayout

在JavaFX中,ListView是一个用于显示列表数据的控件,有时可能会出现底部有白列的情况。这是因为ListView默认会留出间以便用户滚动,即使内容已经填满整个列表。如果你想要移除ListView下方多余的白列,可以尝试设置其`cellPrefSize`、`vgap`(垂直间隙)以及`fillWidth`属性。 以下是具体的步骤: 1. 设置`cellPrefSize`:为ListView的每个列表项设定合适的宽度和高度,使其填充可用间。例如: ```java ListView<MyItem> listView = new ListView<>(); listView.setCellFactory(listView -> new ListCell<MyItem>() { @Override public void updateItem(MyItem item, boolean empty) { super.updateItem(item, empty); if (empty || item == null) { setText(null); } else { // 设置Cell的内容样式并计算预设大小 setStyle("-fx-background-color: white;"); // 或者自定义背景颜色 setGraphic(myItemNode(item)); // myItemNode是你自定义的item节点生成函数 } } }); listView.setCellPrefSize(Control.USE_COMPUTED_SIZE, -1); // 使用自动计算高度,宽度设置为列表宽度 ``` 2. 设置`vgap`:将垂直间隙设置为0: ```java listView.setVgap(0); ``` 3. `fillWidth`:确保ListView完全填充父容器的宽度: ```java AnchorPane pane = new AnchorPane(listView); pane.setFillWidth(true); primaryStage.setScene(new Scene(pane)); ``` 通过上述设置,ListView应该不会在底部留下白了。如果问题依然存在,检查是否还有其他布局影响或是否有额外的CSS样式冲突。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值