0

我刚刚编写了一个在 JavaFX 中使用滚动窗格的简单示例。Scene 中只放置了一个 ScrollPane,并且 ScrollPane 包含一个带有大文本的 Label 组件。使用 gradle 我已将应用程序上传到 Nexus 4 android 设备上。从我上传的视频中可以看出,滚动速度太慢了。我相信其他人也经历过这种情况。非常感谢任何关于如何将其更改为本机速度滚动的建议。

应用程序的源代码可以从这里下载

AndroidFX.java

public class AndroidFX extends Application{

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        Parent mySearchListFXML = getFXMLPane("/fxml/ScrollPaneWithLabel.fxml");
        primaryStage.setScene(new Scene(mySearchListFXML));
        primaryStage.setWidth(Screen.getPrimary().getVisualBounds().getWidth()); primaryStage.setHeight(Screen.getPrimary().getVisualBounds().getHeight());     
        primaryStage.show();
    }

    public static Parent getFXMLPane(String url) throws IOException {
        URL location = AndroidFX.class.getResource(url);
        FXMLLoader fxmlLoader = new FXMLLoader();
        fxmlLoader.setLocation(location);
        Parent pane = fxmlLoader.load();
        return pane;
    }
}

ScrollPaneWithLabel.fxml

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>

<ScrollPane fx:id="scrollPane" fitToWidth="true" hbarPolicy="NEVER" pannable="true" style="-fx-background: white;" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
   <content>
      <Label text="<VERY LARGE TEXT HERE>" wrapText="true" />
   </content>
</ScrollPane>
4

1 回答 1

0

面临类似的问题。在 hidpi 设备上问题更严重,禁用属性文件中的 hipdpi 设置会有所帮助,但您必须为 hidpi 屏幕进行任何缩放。

另一件可能有帮助的事情是缓存字体。我相信 javafx 移植应用程序的最终结果更像是一个带有热点的大图像。我认为滚动只是告诉应用程序每次都重绘整个图像。真的只是一个理论。缓存确实有帮助,但会使您的文本看起来有点模糊。虽然我在放大字体方面取得了一些成功,但将缓存设置为 true 然后缩小,通常 x2 和 .5 会产生相当不错的结果。使用 em 作为字体也有助于模糊文本。

如果您需要显示大量文本并且必须滚动,则通过 webview 显示它可能会获得更好的结果。老实说,我从来没有真正使用过它,但我想它会在移植到本机浏览器窗口时被替换,所以我认为性能应该相当不错。我猜他们可能在 javafx 中编写了一个 html 渲染器,然后你会遇到同样的陷阱。

http://www.gluonhq.com提供了一个名为 charm、down 和 connect 的包,它应该模仿原生应用程序。这听起来很有希望,我目前正在尝试获取更多信息,看看他们是否有解决这些类型问题的方法。如果我收到更多关于魅力的信息,我会添加到帖子中。

于 2015-05-08T13:28:08.037 回答