WebView zeigt weiße/leere Seite, obwohl der Inhalt geladen wurde

  • Antworten:1
Gelöschter Account
  • Forum-Beiträge: 94

12.04.2012, 10:40:25 via Website

Hallo zusammen, ich stehe vor einem kuriosen Problem:

Ich möchte einen WebView mit Inhalten aus dem asset-Folder füllen. In einer App von mir funktioniert das hervorragend. In einer anderen nicht. es wird nur eine weiße/leere Seite dargestellt. Die Inhalte wurden aber geladen, das stelle ich fest, wenn ich am WebView getTitle() oder getURL() aufrufe, beides liefert die korrekten Werte. Das gleiche Verhalten habe ich, wenn ich eine Website aus dem Netz laden will, bspw. http://google.de.

Hier mein Code, vielleicht findet ja jemand den Fehler:

Das Fragment:
1public class InfoFragment extends SherlockFragment {
2
3 public static final String VIEW_ABOUT = "about";
4 public static final String VIEW_INFO = "info";
5 private WebView webView;
6
7 @Override
8 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
9 View root = inflater.inflate(R.layout.fragment_info, null);
10
11 this.webView = (WebView) root.findViewById(R.id.info_webView);
12 this.webView.setVisibility(View.VISIBLE);
13
14 this.webView.getSettings().setJavaScriptEnabled(true);
15 this.webView.getSettings().setDefaultZoom(ZoomDensity.MEDIUM);
16
17 this.webView.setWebChromeClient(new WebChromeClient() {
18 @Override
19 public void onProgressChanged(WebView view, int prog) {
20 if (prog == 100) {
21 // liefert die richtigen Werte:
22 Log.d(Const.LOG_CAT, "finished loading URL " + InfoFragment.this.webView.getUrl());
23 Log.d(Const.LOG_CAT, "The page has the title " + InfoFragment.this.webView.getTitle());
24 }
25 }
26 });
27 this.webView.setWebViewClient(new WebViewClient() {
28
29 @Override
30 public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
31 Log.d(Const.LOG_CAT, "Fehler beim Laden der URL: " + failingUrl + " (" + errorCode + ", " + description + ")");
32 }
33 });
34
35 Bundle args = this.getArguments();
36 String screen = args.getString(Const.PARAMETER_URL);
37
38 if (StringUtil.isBlank(screen)) {
39 screen = VIEW_INFO;
40 }
41 if (screen.equals(VIEW_INFO)) {
42 this.loadInfo();
43 } else if (screen.equals(VIEW_ABOUT)) {
44 this.loadAbout();
45 }
46
47 return root;
48
49 }
50
51 private void loadInfo() {
52 Log.d(Const.LOG_CAT, "Loading info");
53 // this.webView.loadUrl("file:///android_asset/html/info/info.html");
54 this.webView.loadUrl("http://google.de");
55 }
56
57 private void loadAbout() {
58 Log.d(Const.LOG_CAT, "Loading about");
59 this.webView.loadUrl("file:///android_asset/html/about/ueber.html");
60 }
61
62}

Die Layout-XML:
1<?xml version="1.0" encoding="utf-8"?>
2<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent"
5 android:orientation="vertical" >
6 <WebView
7 android:id="@+id/info_webView"
8 android:layout_width="match_parent"
9 android:layout_height="match_parent" />
10
11</LinearLayout>

AndroidManifest.xml
1<?xml version="1.0" encoding="utf-8"?>
2<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3 package="my.package.path"
4 android:versionCode="3"
5 android:versionName="2.0.0" >
6
7 <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" />
8 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
9 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
10 <uses-permission android:name="android.permission.INTERNET"/>
11
12 <application
13 android:icon="@drawable/logo_icon"
14 android:label="@string/app_name"
15 android:theme="@style/my.Theme">
16 <activity
17 android:name=".ui.HomeActivity"
18 android:label="@string/app_name" >
19 <intent-filter>
20 <action android:name="android.intent.action.MAIN" />
21
22 <category android:name="android.intent.category.LAUNCHER" />
23 </intent-filter>
24 </activity>
25 </application>
26
27</manifest>

Langsam verzweifel ich dran...

Martin

Antworten
Gelöschter Account
  • Forum-Beiträge: 94

16.04.2012, 08:12:18 via Website

Abgefahren. Verwende ich das Fragment in einem Tablet-Layout wieder, so wird die Website angezeigt... Keine Ahnung, warum...

Antworten