设置新的vvalue
发生在修改vbox
导致的布局传递之前,但结果应用于布局传递之前。因为视图中显示的顶部y坐标的公式是
top = max(0, vvalue * (contentHeight - viewportHeight))
在布局传递过程中,内容的左上角保持不变,您可以在视口的底部看到旧内容的底部。
要解决此问题,可以使用以下方法在scrollpane
上手动触发布局传递
scrollPane.applyCss();
scrollPane.layout();
@Override
public void start(Stage primaryStage) {
VBox content = new VBox();
ScrollPane scrollPane = new ScrollPane(content);
VBox.setVgrow(scrollPane, Priority.ALWAYS);
Button button = new Button("fill");
button.setOnAction(evt -> {
for (int i = 0; i < 20; i++) {
content.getChildren().add(new Text(Integer.toString(i)));
}
System.out.println("content size before layout: " + content.getHeight());
// manually layout scrollPane
scrollPane.applyCss();
scrollPane.layout();
System.out.println("content size after layout: " + content.getHeight());
scrollPane.setVvalue(1d);
});
Scene scene = new Scene(new VBox(button, scrollPane), 200, 200);
primaryStage.setScene(scene);
primaryStage.show();
}
我使用JavaFX ListView作为聊天应用程序的聊天室主体。当消息到来或正在发送时,我会添加到listview。这很好,但我总是不得不滚动找到最新的消息。有没有任何方法,我可以自动滚动到底部,以便显示最新的消息,而不必一直向下滚动?
我尝试过这样做: 但是它什么也不做,所以我做了一个循环来按步骤滚动页面: 它有点工作,但我不知道一个给定的页面有多长,所以我必须输入一个大的数字作为最大高度,这给了我两个问题。第一个是,即使是一个很大的数字也不足以滚动某些页面,第二个是,如果页面短于此限制,那么当脚本什么都不做时,等待脚本完成的时间会损失很多
自动滚动只有当我手动滚动到底部一次来“让它继续”时才起作用,如果这有任何意义的话。一旦它被滚动到底部,新项的行为与预期的一样,滚动条自动下降,跟踪ListView的内容。不确定这里可能有什么问题,显然滚动条只有在需要时才会出现,不确定这是否与此有关。 你知道吗?
我的问题:我的ListView中的一个项目在我开始滚动后会动画。它不是最后一项,动画应该完成。一旦问题消失,我滚动后,它只发生一次,并且只发生在列表中的单个项目上。 在我开始滚动ListView之后,如何停止单个项目的动画制作? 我希望在将项目添加到适配器时,动画仅运行一次。 我有一个列表适配器,当项目添加到列表中时,我在其中对它们进行动画处理。我正在使用声明的动画器在适配器的getView()方
本文向大家介绍fullpage.js最后一屏滚动方式,包括了fullpage.js最后一屏滚动方式的使用技巧和注意事项,需要的朋友参考一下 这两天公司网页改版用到fullpage.js这个滚屏插件,页面内容整屏的滚动,不成问题,各种设置在网上也都有文档。 而我遇到的问题就是,页面内容不满屏的时候,和上面的内容放一块就太挤,单独放一屏就太空,好尴尬的说 底部的footer部分就是我要单独处理的部分,
问题内容: 我正在使用iOS 8新的自动调整大小的单元格。外观上效果很好-每个单元格都有合适的大小。但是,如果我尝试 滚动到最后一行 ,则表视图似乎不知道其正确大小。这是一个错误还是有解决办法? 重新创建问题的方法如下: 使用这个项目-TableViewCellWithAutoLayoutiOS8(从该SO答案引用),我按预期得到了自动调整大小的单元格。 但是,如果我要调用 scrollToRow