ActionBar-navigated Activity中的片段中的WebView - 如何避免重新加载?

时间:2014-07-30 15:26:42

标签: android android-fragments webview

所以我有一个带有3个标签的活动,我在ActionBar(SupportActionBar)之间导航。每个选项卡都有一个附加了WebView的Fragment,并在Android Docs中使用了TabListener实现。

这一切都很好,除了每次重新附加片段时都会调用Fragment的onCreateView方法。这反过来导致WebView为(1)空白或(2)重新加载,如果我在其上调用restoreState()(我之前已手动保存)。

每次用户切换标签时,我都不希望页面重新加载。我也不希望滚动条重置。或者重置HTML表单(如果有)。我怎么能做到这一点?

1 个答案:

答案 0 :(得分:0)

通过在片段类中保留对WebView的引用来解决,并在onCreateView中执行此操作:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    if (mWebView == null) {
        mWebView = new WebView(container.getContext());
        mWebView.restoreState(savedInstanceState);
    }
    else {
        View parent = mWebView.getParent();
        if (parent != null && parent instanceof ViewGroup) 
            ((ViewGroup) parent).removeView(mWebView);
    }
    return mWebView;
}