简体   繁体   English

WebViewClient loadData onPageFinished 没有被调用

[英]WebViewClient loadData onPageFinished not getting called

I am loading data using webview but onPageFinished doesn't get called and progressbar doesn't disappear.我正在使用 webview 加载数据,但没有调用 onPageFinished 并且进度条没有消失。

public View onCreateView(@NonNull LayoutInflater inflater,
                             ViewGroup container, Bundle savedInstanceState) {

        WebView webViewEcoDetail;
        ProgressBar progressBar;
        //setup Toolbar
        setupToolbar(getActivity(), "MEIN GARTEN", R.drawable.gardify_app_icon_mein_garten, true);

        View root = inflater.inflate(R.layout.fragment_my_garden_eco_detail, container, false);

        webViewEcoDetail = root.findViewById(R.id.web_view_my_garden_eco_detail);
        progressBar = root.findViewById(R.id.progressBar_my_garden_eco_detail);

        Bundle bundle = getArguments();
        String detailFragName = bundle.getString("ECO_DETAIL");
        String html_string = null;
        switch (detailFragName) {
            case "Komposthaufen":
                html_string = "<html><body><div _ngcontent-ljw-c102=\"\" class=\"col-12 col-md-12\"><h2 _ngcontent-ljw-c102=\"\" class=\"t-13\" style=\"text-decoration: underline;\">Der Komposthaufen</h2><p _ngcontent-ljw-c102=\"\"> Der stille, fleißige Gartenhelfer, der Küchen- und Gartenreste aufnimmt und in wertvollen Humus verwandelt, ist das Symbol für Nachhaltigkeit und Kreislaufwirtschaft im Garten.&nbsp;Damit die Mikroorganismen im Komposthaufen die Metamorphose vom Abfallprodukt zur Nährstoffquelle vollführen können, benötigen sie neben dem richtigen Füllmaterial auch Sauerstoff, Wasser und eine angenehme Temperatur. Um optimale Bedingungen zu schaffen, beachtet folgendes:<br _ngcontent-ljw-c102=\"\"><br _ngcontent-ljw-c102=\"\"><span _ngcontent-ljw-c102=\"\" class=\"t-italic\">Die richtige Standortwahl:</span> Euer Komposthaufen sollte auf natürlichem Untergrund (kein Asphalt oder Beton) und im Schatten oder Halbschatten stehen, sowie mit der Schubkarre gut erreichbar sein. Stellt ihn nicht zu nah an eurem Haus auf. Als Wind- und Sichtschutz dienen Hecken, Sträucher oder Bäume. Geschlossene Wände hingegen eignen sich nicht, da sie die Luftzufuhr zum Komposthaufen verhindern.<br _ngcontent-ljw-c102=\"\"><br _ngcontent-ljw-c102=\"\"><span _ngcontent-ljw-c102=\"\" class=\"t-italic\">Der richtige Behälter:</span> Es gibt verschiedene geeignete Behälter. Allen ist gemein, dass sie wetterfest sind und den Luft- und Wasseraustausch ermöglichen. Wir stellen hier die drei gängigsten Varianten vor. </p><ul _ngcontent-ljw-c102=\"\"><li _ngcontent-ljw-c102=\"\"><span _ngcontent-ljw-c102=\"\" class=\"t-italic\">Der Klassiker</span>:Ein Komposter aus Holzlatten. Benutzt eine witterungsbeständige Holzsorte, wie z.B. Lärche. Ihr braucht ca. 20 Latten (Länge 1 m, Breite 10 cm, Dicke 4 cm) und 4 Kanthölzer (5 x 5 cm) als Eckpfeiler. Eventuell müssen einzelne Latten mit der Zeit ausgetauscht werden, daher sollten sie mit einem Stecksystem verbunden und nicht verschraubt werden. Diverse Bauanleitungen findet ihr im Netz. </li><li _ngcontent-ljw-c102=\"\"><span _ngcontent-ljw-c102=\"\" class=\"t-italic\">Der Drahtige</span>: Ein Drahtgitter-Kompost funktioniert wie ein Lattenkompost, hält aber noch länger.</li><li _ngcontent-ljw-c102=\"\"><span _ngcontent-ljw-c102=\"\" class=\"t-italic\">Miet me</span>: Ebenfalls beliebt ist die Methode der Kompost-Miete. Dabei wird ein Komposthaufen fertig angelegt und mit einer Plane abgedeckt. Er arbeitet dann eine Weile vor sich hin bevor er umgeschichtet wird. </li></ul><p _ngcontent-ljw-c102=\"\"> Im Gegensatz zur Kompost-Miete sollte der Komposthaufen bei den anderen Varianten regelmäßig umgeschichtet werden. Daher lohnt es sich, wenn möglich, zwei Kompostier-Behältnisse gleichzeitig zu besitzen. </p><h2 _ngcontent-ljw-c102=\"\" class=\"t-13 t-italic\">Das richtige Füllmaterial</h2><br _ngcontent-ljw-c102=\"\"><div _ngcontent-ljw-c102=\"\" class=\"table-responsive\"><table _ngcontent-ljw-c102=\"\" class=\"table table-striped\"><thead _ngcontent-ljw-c102=\"\"><tr _ngcontent-ljw-c102=\"\"><th _ngcontent-ljw-c102=\"\" scope=\"col\">Das darf hinein:</th><th _ngcontent-ljw-c102=\"\" scope=\"col\">In geringen Maßen:</th><th _ngcontent-ljw-c102=\"\" scope=\"col\">Das darf nicht hinein:</th></tr></thead><tbody _ngcontent-ljw-c102=\"\"><tr _ngcontent-ljw-c102=\"\"><td _ngcontent-ljw-c102=\"\">Gemüse- und Obstreste und Schalen</td><td _ngcontent-ljw-c102=\"\">Zeitungspapier und Pappe (unbeschichtet, nicht farbig bedruckt)</td><td _ngcontent-ljw-c102=\"\">Gekochtes oder zubereitetes Essen, besonders Fleisch und andere proteinhaltige Lebensmittel</td></tr><tr _ngcontent-ljw-c102=\"\"><td _ngcontent-ljw-c102=\"\">Eierschalen</td><td _ngcontent-ljw-c102=\"\">Federn und Haare</td><td _ngcontent-ljw-c102=\"\">Von Pilz befallene Pflanzenreste</td></tr><tr _ngcontent-ljw-c102=\"\"><td _ngcontent-ljw-c102=\"\">Kaffeesatz</td><td _ngcontent-ljw-c102=\"\">Wildkräuter (ohne Samen)</td><td _ngcontent-ljw-c102=\"\">behandeltes Holz / beschichtetes Papier</td></tr><tr _ngcontent-ljw-c102=\"\"><td _ngcontent-ljw-c102=\"\">Getrockneter Rasenschnitt</td><td _ngcontent-ljw-c102=\"\">Frischer Rasenschnitt</td><td _ngcontent-ljw-c102=\"\">mineralische Abfälle</td></tr><tr _ngcontent-ljw-c102=\"\"><td _ngcontent-ljw-c102=\"\">Laub (vorsicht bei Kastanien-, Walnuss- und Eichenlaub)</td><td _ngcontent-ljw-c102=\"\">Holzstreu, Sägespäne (nur ganz geringe Mengen)</td><td _ngcontent-ljw-c102=\"\">Holzasche: Bäume nehmen Schadstoffe auf, die beim Verbrennen in der Asche zurückbleibt</td></tr><tr _ngcontent-ljw-c102=\"\"><td _ngcontent-ljw-c102=\"\">Alte Erde</td><td _ngcontent-ljw-c102=\"\">Algen (aus dem Gartenteich)</td><td _ngcontent-ljw-c102=\"\">Pflanzen mit Schädlingsbefall</td></tr><tr _ngcontent-ljw-c102=\"\"><td _ngcontent-ljw-c102=\"\">Gründschnitt von Stauden und Gehölzen</td><td _ngcontent-ljw-c102=\"\">Zitrusfrüchte</td><td _ngcontent-ljw-c102=\"\">Metall, Leder</td></tr><tr _ngcontent-ljw-c102=\"\"><td _ngcontent-ljw-c102=\"\">Blumen-, Balkon- und Zimmerpflanzen</td><td _ngcontent-ljw-c102=\"\"></td><td _ngcontent-ljw-c102=\"\">Zitrusfruchtschalten (sind oft gespritzt)</td></tr></tbody></table></div><p _ngcontent-ljw-c102=\"\"> Achtet außerdem darauf, dass das eingebrachte Material feucht aber nicht nass ist und es großflächig aufgebracht wird. Eine Diversität im Material lohnt ebenfalls: Berücksichtigt das Kohlenstoff-Stickstoff- Verhältnis, sprich das von holzigem und frischem Material. Grobes Material liegt unten, feineres Material wird gemischt darauf verteilt. Eine Abdeckplane fördert die Wärmeentwicklung (das ist vor allem im Winter wegen der Kälte wichtig) und verhindert gleichzeitig Feuchtigkeitsverlust. Zur Abdeckung eignen sich Stroh- oder Schilfmatten, sowie atmungsaktives Kompostschutzvlies. Folien sollten nur kurzfristig und bei starkem Regen zum Einsatz kommen: Sie verhindern, dass Nährstoffe hinausgespült werden, sind aber gleichzeitig luftdicht. Durch die fehlende Sauerstoffzufuhr, können die Abfälle zu faulen beginnen. </p><h2 _ngcontent-ljw-c102=\"\" class=\"t-13 t-italic\">Gut zu wissen.</h2><p _ngcontent-ljw-c102=\"\"> Das „torf“ doch nicht wahr sein: Auch wenn Torf aus Hochmooren wegen seines Säuregrads und seiner Fähigkeit Wasser gut zu binden, gerne benutzt wird, schadet sein Einsatz der Umwelt – und zwar gleich doppelt. Sein Abbau zerstört die jahrhundert- bis jahrtausendalten Moore und mit ihm den Lebensraum zahlreicher Pflanzen und Tiere. Außerdem schadet der Torfabbau dem Klima, denn bei der Entwässerung der Moore entweicht CO2. Es ist deshalb besonders nachhaltig, wenn Gärtner möglichst viel mit ihrer selbst hergestellten Komposterde arbeiten und auf torfhaltige Blumenerde möglichst verzichten.<br _ngcontent-ljw-c102=\"\"><br _ngcontent-ljw-c102=\"\"> Umfassende Informationen findet ihr außerdem in der Kompostfibel des Umweltbundesamt:<br _ngcontent-ljw-c102=\"\"><br _ngcontent-ljw-c102=\"\"><a _ngcontent-ljw-c102=\"\" href=\"https://www.umweltbundesamt.de/sites/default/files/medien/376/publikationen/151207_stg_uba_kompostfibel_web.pdf\" rel=\"noopener noreferrer\" target=\"_blank\" style=\"word-wrap: break-word;\"> https://www.umweltbundesamt.de/sites/default/files/medien/376/publikationen/151207_stg_uba_kompostfibel_web.pdf</a></p><div _ngcontent-ljw-c102=\"\" class=\"row\"><div _ngcontent-ljw-c102=\"\" class=\"col-md-12 mt-4 text-center\"><img _ngcontent-ljw-c102=\"\" src=\"./assets/images/kompost1.jpg\" style=\"width: 100%;\"></div><div _ngcontent-ljw-c102=\"\" class=\"col-md-12 mt-4 text-center\"><img _ngcontent-ljw-c102=\"\" src=\"./assets/images/kompost2.jpg\" style=\"width: 100%;\"></div></div></div></body><div _ngcontent-ljw-c102=\"\" class=\"row\"><div _ngcontent-ljw-c102=\"\" class=\"col-md-12 mt-4 text-center\"><img _ngcontent-ljw-c102=\"\" src=\"https://gardify.de//assets/images/kompost1.jpg\" style=\"width: 100%;\"></div><div _ngcontent-ljw-c102=\"\" class=\"col-md-12 mt-4 text-center\"><br><img _ngcontent-ljw-c102=\"\" src=\"https://gardify.de/assets/images/kompost2.jpg\" style=\"width: 100%;\"></div></div></html>";
                break;
        }

        AppWebViewClients webViewClients = new AppWebViewClients(progressBar);
        webViewClients.shouldOverrideUrlLoading(webViewEcoDetail,html_string);
        return root;
    }

    public class AppWebViewClients extends WebViewClient {
        private ProgressBar progressBarEco;
        public AppWebViewClients(ProgressBar progressBar) {
            this.progressBarEco=progressBar;
            progressBarEco.setVisibility(View.VISIBLE);
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String htmlString) {
            view.loadData(htmlString, "text/html", "UTF-8");
            return true;
        }
        
        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            progressBarEco.setVisibility(View.GONE);
        }
    }

Try to use loadDataWithBaseURL instead of loadData尝试使用loadDataWithBaseURL而不是loadData

view.loadDataWithBaseURL(null, htmlString, "text/html", "UTF-8",null); 

Instead of代替

view.loadData(htmlString, "text/html", "UTF-8");

Update更新

You need to add你需要添加

webViewEcoDetail.setWebViewClient(webViewClients);

Also call也叫

webViewEcoDetail.loadUrl(html_string);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM