1

我正在制作一个基本的骰子应用程序,我想在 FlowPane 中显示骰子结果,因为它会在窗口水平调整/调整大小时自动调整“列”。这个解决方案的问题是结果需要是可滚动的,而且 ScrollPane 的性能在 Gluon on android 中似乎完全乏善可陈。

目前,对于桌面版本(常规 JavaFX),我在滚动窗格中使用 FlowPane,对于移动版本,我使用 CharmListView。但我也希望能够在移动设备上使用性能良好的网格。

我希望能够使右侧的图像更像左侧的图像,而不会破坏移动设备上的滚动性能。 左边是电脑版,右边是手机版

有没有人知道任何工具可以做到这一点,而不必获得窗口的宽度,计算我可以拥有多少列骰子,并用计算出的列数用 HBoxes 填充 CharmListView?

我项目中的所有内容都是 Gluon 3。我想知道它是否只是一堆图像框的问题。

我的代码大致是这样的:

private Image image1 = new Image("/Dice/one.png");
private Image image2 = new Image("/Dice/two.png");
private Image image3 = new Image("/Dice/three.png");
private Image image4 = new Image("/Dice/four.png");
private Image image5 = new Image("/Dice/five.png");
private Image image6 = new Image("/Dice/six.png");

ArrayList<Image> images = new ArrayList<>();
 images.add(image1);
 images.add(image2);
 images.add(image3);
 images.add(image4);
 images.add(image5);
 images.add(image6);

 FlowPane pane = new FlowPane();
 pane.prefWidthProperty().bind(widthProperty());
 ScrollPane scrollPane = new ScrollPane(pane);
 scrollPane.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER);

 for(int i = 0; i < 1000; i++) {
     pane.getChildren().add(new ImageView(images.get(random.nextInt(6))));
    }

 setCenter(scrollPane);'

这都在我的基本视图类中。性能绝对糟糕,即使只有大约 100 个骰子。我主要是为桌面战争游戏制作这个,而且我玩的是部落军队……所以超过 100 个骰子对我来说并不少见。我使用的设备也相当高端:三星 Galaxy S7 和 Nexus 9。

4

0 回答 0