android dialogFragment "manchmal" webview nicht angezeigt

8

Ich habe ein DialogFragment mit einem WebView darin. Wenn die Webansicht die Seite nicht schnell genug lädt, wird das DialogFragment vollständig verkleinert und die Webansicht wird nicht angezeigt. Andernfalls, wenn das Laden schnell war, wird das WebView angezeigt.

    
David 07.11.2012, 17:29
quelle

4 Antworten

9

Ich habe die Lösung alleine gefunden. Wenn Sie LinearLayout als Stammansicht für Ihr DialogFragment verwenden, wird dies geschehen, indem Sie es in FrameLayout ändern, um das Problem zu lösen. Ich verstehe nicht warum, aber es funktioniert.

    
David 03.09.2013, 15:19
quelle
1

In meinem Fall habe ich eine benutzerdefinierte WebView wie ExpandableHeightWebView für die dynamische Höhe verwendet.

%Vor%

Ich rufe setExpanded(true); nach myWebView.loadData(data,null);
an Dieses Problem wurde gelöst, wenn ich setExpanded(true); line lösche.

    
Mustafa Ferhan 29.01.2014 12:17
quelle
1

Ich habe es in zwei Geräten versucht.

Im ersten Gerät funktionierte Nexus 6 wie David: "Ich habe die Lösung selbst gefunden. Wenn Sie LinearLayout als Root-Ansicht für Ihr DialogFragment verwenden, wird das Problem durch das Ändern auf FrameLayout gelöst. Ich verstehe nicht warum, aber Es klappt". Aber ich versuchte es in einem zweiten Gerät (Galaxy Prime) und Überraschung, nicht funktioniert. Nach dem Versuch, make SetVisible GONE WebView in meinem WebViewClient innerhalb Callback onPageStarted() und nach setVisible VISIBLE innerhalb Callback onPageFinished() und arbeitete für meine.

%Vor%
    
Heriberto Rivera 01.04.2017 20:36
quelle
0

Wenn Sie die Webansicht über AsyncTaks laden, wird das Dialogfeldfragment nicht angezeigt, da AsyncTasks das Layout nicht ändern kann, das sich im Hauptthread befindet. Schau es dir an.

    
robpf 03.09.2013 14:31
quelle