我剛剛編寫了一個在JavaFX中使用滾動窗格的簡單示例。只有一個ScrollPane放置在場景中,並且ScrollPane擁有一個帶有大文本的Label組件。使用gradle我已經在Nexus 4 Android設備上上傳了應用程序。正如你可以從the video I have uploaded看到的那樣,滾動速度太慢了。我相信其他人已經經歷了這一點。任何有關如何將其更改爲本地速度滾動的建議都非常感謝。Android上的JavaFX ScrollPane - 太慢
該應用的源代碼可以是downloaded from here。
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>
我想評論一下,我不認爲這些問題與javafxports插件有關。我相信這些問題來自OpenJdk或javafx核心本身,並且在高性能臺式機上並不明顯。 Max OSX上的視網膜屏幕出現類似的問題 – Frank
是否有緩存字體的全局設置?什麼是高dpi的參數。我想給它一個嘗試記錄差異 – javasuns
我認爲這將是可能的使用查找功能,也許像(標籤)scene.lookup(「標籤」)然後循環它們並設置緩存 – Frank