0

当我替换为时fragmentAfragmentB我使用以下代码:

 fragmentManager
        .beginTransaction()
        .replace(R.id.content_frame, new fragmentB())
        .addToBackStack(null)
        .commit();

但是当我按下后退按钮时fragmentA,它不会保持以前的状态,而是从头开始重新加载。如何恢复以前的fragmentA状态?

4

1 回答 1

0

您可以尝试覆盖片段的 onSaveInstanceState(Bundle outState) 方法。只需将 webview 的当前 url 保存到包中,然后在片段的 onCreateView 方法中检索它。

public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
    ...
    if(savedInstanceState != null){
        String url = savedInstanceState.getString("URL");
        if(url != null){
            mWebView.loadUrl(url);
        }
    }
    ...
}

public void onSaveInstanceState(Bundle outState){ 
    super.onSaveInstanceState(outState);
    outState.putString("URL", mWebView.getUrl();
}
于 2013-07-25T00:56:09.487 回答