将 webview 添加到 sherlock 片段中
Posted
技术标签:
【中文标题】将 webview 添加到 sherlock 片段中【英文标题】:adding webview into sherlock fragment 【发布时间】:2013-12-08 19:33:52 【问题描述】:我成功将 WebView 添加到 sherlock 片段中。它运行良好,但是当我看到我的 logcat 时,我发现一个奇怪的输出:
12-08 19:08:49.360: I/Choreographer(1495): Skipped 44 frames! The application may be doing too much work on its main thread.
就像一个循环,不想停下来!!
这些框架是什么?我应该用它做什么?
是线程问题吗?
有我的代码,也许我犯了错误,这就是我的 logcat 爆炸的原因
public class Schedule extends SherlockFragment
private WebView web_v;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
// TODO Auto-generated method stub
View v= inflater.inflate(R.layout.fragment_schedule, container, false);
web_v=(WebView)v.findViewById(R.id.webView_schedule);
WebSettings web_sett=web_v.getSettings();
web_sett.setjavascriptEnabled(true);
web_v.setWebViewClient(new MyWebClient());
web_v.loadUrl("http://www.pcinpact.com/?skipua=1");
v.setOnKeyListener(new OnKeyListener()
@Override
public boolean onKey(View v, int keyCode, KeyEvent event)
// TODO Auto-generated method stub
if(keyCode==KeyEvent.KEYCODE_BACK && web_v.canGoBack())
web_v.goBack();
return true;
return false;
);
return v;
private class MyWebClient extends WebViewClient
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
// TODO Auto-generated method stub
web_v.loadUrl(url);
return true;
提前致谢。
【问题讨论】:
【参考方案1】:请删除 shouldOverrideUrlLoading 中对 loadUrl() 的调用,并从该函数返回 false。
问题是您正在回调告诉 webview 从头开始重新加载 URL,从回调中告诉您 WebView 想要加载 URL,导致加载 URL 的请求循环.
【讨论】:
非常感谢 @Ksasq 它可以正常工作了 yeaaah :)) 多亏了您的建议,这个循环现在已经消失了。以上是关于将 webview 添加到 sherlock 片段中的主要内容,如果未能解决你的问题,请参考以下文章
在 webview_flutter 中启用捏合和缩放,在哪里添加代码片段 [this.webView.getSettings().setBuiltInZoomControls(true);]