Fragment中的WebView不加载HTML字符串

时间:2014-03-07 12:22:41

标签: android android-fragments android-webview

我正在将一个HTML字符串传递给我的Fragment。它将它加载到WebView中但没有任何反应,片段仍为空。

我非常肯定(感谢日志)我的Fragment正在接收HTML字符串。

这是片段代码:

private WebView mWebView;
String html;

@Override
public void onCreate(Bundle savedInstanceState) {
    Log.d(MainActivity.TAG, "VideogamesWebViewFragment --> onCreate()");
    super.onCreate(savedInstanceState);
}

public void onActivityCreated(Bundle savedInstanceState)
{
    Bundle bundle = this.getArguments();
    if(bundle != null)
    {
        html = bundle.getString("html");
    }

super.onActivityCreated(savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    Log.d(MainActivity.TAG, "VideogamesWebViewFragment --> onCreateView()");
    View view = inflater.inflate(R.layout.default_web_view, container,
            false);
    mWebView = (WebView) view.findViewById(R.id.webview);   
    mWebView.getSettings().setLoadsImagesAutomatically(true);         
    //load html string   
    mWebView.loadData(html, "text/html", null);  

    return view;
}

@Override
public void onDestroy() {
    Log.d(MainActivity.TAG, "VideogamesWebViewFragment --> onDestroy()");
    super.onDestroy();
}

@Override
public void onDestroyView() {
    Log.d(MainActivity.TAG, "VideogamesWebViewFragment --> onDestroyView()");
    super.onDestroyView();
}

@Override
public void onResume() {
    super.onResume();
    Log.d(MainActivity.TAG, "VideogamesWebViewFragment --> onResume()");
}

@Override
public void onViewStateRestored(Bundle savedInstanceState) {
    super.onViewStateRestored(savedInstanceState);  
    Log.d(MainActivity.TAG,"VideogamesWebViewFragment --> onViewStateRestored()");
}  

我也遇到了这些错误:

03-07 07:09:41.626: D/Ludos(3053): VideogamesWebViewFragment --> onCreate()
03-07 07:09:41.626: D/Ludos(3053): VideogamesWebViewFragment --> onCreateView()
03-07 07:09:41.636: V/WebViewChromium(3053): Binding Chromium to the background looper Looper{b100af18}
03-07 07:09:41.636: I/chromium(3053): [INFO:library_loader_hooks.cc(112)] Chromium logging enabled: level = 0, default verbosity = 0
03-07 07:09:41.636: I/BrowserProcessMain(3053): Initializing chromium process, renderers=0
03-07 07:09:41.666: W/chromium(3053): [WARNING:proxy_service.cc(888)] PAC support disabled because there is no system implementation
03-07 07:09:41.756: D/Ludos(3053): VideogamesWebViewFragment --> onViewStateRestored()
03-07 07:09:41.756: D/Ludos(3053): VideogamesWebViewFragment --> onResume()
03-07 07:09:41.796: W/EGL_emulation(3053): eglSurfaceAttrib not implemented
03-07 07:09:41.806: W/AwContents(3053): nativeOnDraw failed; clearing to background color.
03-07 07:09:42.076: W/AwContents(3053): nativeOnDraw failed; clearing to background color.
03-07 07:09:42.476: E/eglCodecCommon(3053): glUtilsParamSize: unknow param 0x00000b44
03-07 07:09:42.486: E/eglCodecCommon(3053): glUtilsParamSize: unknow param 0x00000bd0
03-07 07:09:42.546: I/chromium(3053): [INFO:async_pixel_transfer_manager_android.cc(56)] Async pixel transfers not supported
03-07 07:09:42.656: I/chromium(3053): [INFO:async_pixel_transfer_manager_android.cc(56)] Async pixel transfers not supported
03-07 07:09:42.746: E/eglCodecCommon(3053): **** ERROR unknown type 0x0 (glSizeof,72)
03-07 07:09:42.776: E/eglCodecCommon(3053): glUtilsParamSize: unknow param 0x00000b44
03-07 07:09:42.786: E/eglCodecCommon(3053): glUtilsParamSize: unknow param 0x00000bd0
03-07 07:09:43.336: E/eglCodecCommon(3053): **** ERROR unknown type 0x0 (glSizeof,72)
03-07 07:09:43.376: E/eglCodecCommon(3053): glUtilsParamSize: unknow param 0x00000b44
03-07 07:09:43.386: E/eglCodecCommon(3053): glUtilsParamSize: unknow param 0x00000bd0
03-07 07:09:43.406: E/eglCodecCommon(3053): **** ERROR unknown type 0x0 (glSizeof,72)
03-07 07:09:43.416: E/eglCodecCommon(3053): glUtilsParamSize: unknow param 0x00000b44
03-07 07:09:43.426: E/eglCodecCommon(3053): glUtilsParamSize: unknow param 0x00000bd0
03-07 07:09:43.446: E/eglCodecCommon(3053): **** ERROR unknown type 0x0 (glSizeof,72)
03-07 07:09:43.456: E/eglCodecCommon(3053): glUtilsParamSize: unknow param 0x00000b44
03-07 07:09:43.476: E/eglCodecCommon(3053): glUtilsParamSize: unknow param 0x00000bd0
03-07 07:09:43.496: E/eglCodecCommon(3053): **** ERROR unknown type 0x0 (glSizeof,72)
03-07 07:09:43.506: E/eglCodecCommon(3053): glUtilsParamSize: unknow param 0x00000b44
03-07 07:09:43.516: E/eglCodecCommon(3053): glUtilsParamSize: unknow param 0x00000bd0
03-07 07:09:43.546: E/eglCodecCommon(3053): **** ERROR unknown type 0x0 (glSizeof,72)
03-07 07:09:43.546: E/eglCodecCommon(3053): glUtilsParamSize: unknow param 0x00000b44
03-07 07:09:43.566: E/eglCodecCommon(3053): glUtilsParamSize: unknow param 0x00000bd0  

谢谢!

2 个答案:

答案 0 :(得分:1)

不要关心从logcat获得的错误。

就我而言,我加载了一个包含图像滑块的网站。当滑块中的图像更改图像时,logcat会生成相同的错误代码。我认为可能是因为网页计算了我的设备屏幕的大小。我只是因为它来自gl,我不确定..

05-03 10:15:25.149:E / eglCodecCommon(5081):错误未知类型0x1(glSizeof,73)

但它不再给我的应用带来麻烦。

答案 1 :(得分:0)

onCreateView可以在onActivityCreated之前或之后调用,具体取决于您添加片段的方式。尝试在onResumeonStart

中加载HTML