将 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 片段中的主要内容,如果未能解决你的问题,请参考以下文章

ActionBar Sherlock ,操作栏选项卡和片段

如何将覆盖视图放在操作栏上 Sherlock

Android tv:标题片段中每个项目的 Webview

在 webview_flutter 中启用捏合和缩放,在哪里添加代码片段 [this.webView.getSettings().setBuiltInZoomControls(true);]

在 Fragment 中使用 WebView

导航到与 webview 片段不同的片段后,如何在 webview 中返回?