JavaFX Webview: полоса прокрутки перекрывает содержимое - PullRequest
1 голос
/ 25 мая 2020

При использовании JavaFX Webview полосы прокрутки перекрывают содержимое, потенциально скрывая элементы управления и т.п.

Как сделать так, чтобы полосы прокрутки не блокировали контент?

Вот небольшой лакомый кусочек:

package com.company;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.scene.web.WebView;
import javafx.stage.Stage;

public class Main extends Application {
    public static void main(String[] args) { launch(args); }

    public void start(Stage primaryStage) {
        WebView webView = new WebView();
        webView.getEngine().load("https://mdbootstrap.com/docs/jquery/modals/basic/");

        VBox vBox = new VBox(webView);
        Scene scene = new Scene(vBox, 960, 600);

        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

Webview: enter image description hereChrome: enter image description hereFirefox: enter image description here Край: enter image description here

1 Ответ

1 голос
/ 26 мая 2020

Рекомендую получить ScenicView - отличный инструмент. Это очень помогло мне с подобными проблемами.

ScrollBar является частью WebView. Чтобы изменить его поведение, вам необходимо создать собственный .css только для движка WebView.

Затем примените указанный стиль, используя:

webView.getEngine().setUserStyleSheetLocation(getClass().getResource("/path/to/style.css").toExternalForm());.

hotzst , в этом вопросе упоминается ссылка на this и в целом объясняется, что поведение ScrollBar зависит от веб-страницы. Вы можете изменить его, введя собственный стиль (через локальный файл .css), но это также может повредить структуру указанной страницы.

michael_s , содержит несколько интересных советов и ссылки здесь , которые вы, возможно, захотите проверить, изменив webkit, используемое для него.

К сожалению, я не так разбираюсь в этом, поэтому я не знаю, что именно нужно необходимо изменить.

Надеюсь, это хоть немного поможет.

...