首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Webview方向更改webview丢失标题

Webview方向更改webview丢失标题
EN

Stack Overflow用户
提问于 2013-07-18 01:14:44
回答 1查看 522关注 0票数 0

当我旋转屏幕时,网页重新加载,但没有我的原始标题。

我正在使用以下命令恢复webview状态:

代码语言:javascript
复制
@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    if (savedInstanceState == null) {
        // Restore the state of the WebView
        // webView.getRefreshableView().restoreState(savedInstanceState);
        webView.loadUrl("my_url");
    } else {
        webView.restoreState(savedInstanceState);
    }
}

@Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    webView.saveState(outState);
}

对解决方案有什么想法吗?我真的很想恢复状态,因为它包含了所有的网页历史记录,但我需要当页面重新加载时的标题!

EN

回答 1

Stack Overflow用户

发布于 2013-07-18 01:52:34

我用这个解决方案解决了这个问题:http://www.devahead.com/blog/2012/01/preserving-the-state-of-an-android-webview-on-screen-orientation-change/

它现在不会重新加载页面,只是重新渲染标题和包含的内容,web历史记录也是完好无损的。

建议的here

我对它进行了修改,以便在这里使用片段和片段:

代码语言:javascript
复制
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.setRetainInstance(true);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.web_fragment, null);
    //webContainer = () view.findViewById(R.id.web_container);
    initUI(view);
    setupWebView();
    return view;
}

protected void initUI(View view)
{
    // Retrieve UI elements
    webViewPlaceholder = ((FrameLayout)view.findViewById(R.id.webViewPlaceholder));
     // Initialize the WebView if necessary
    if (webView == null)
    {
        // Create the webview
        webView = new JSWebView(getActivity());
        webView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT));

        // Load the URLs inside the WebView, not in the external web browser
        webView.setWebViewClient(new WebViewClient());

        // Load a page
        webView.loadUrl("http://someinitialurl.com");
    }

    // Attach the WebView to its placeholder
    webViewPlaceholder.addView(webView);
}

@Override
public void onConfigurationChanged(Configuration newConfig)
{
    if (webView != null)
    {
        // Remove the WebView from the old placeholder
        webViewPlaceholder.removeView(webView);
    }

    super.onConfigurationChanged(newConfig);

    // Reinitialize the UI
    initUI(getView());
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17706136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档