所以我有一个带有3个标签的活动,我在ActionBar(SupportActionBar)之间导航。每个选项卡都有一个附加了WebView的Fragment,并在Android Docs中使用了TabListener实现。
这一切都很好,除了每次重新附加片段时都会调用Fragment的onCreateView
方法。这反过来导致WebView为(1)空白或(2)重新加载,如果我在其上调用restoreState()(我之前已手动保存)。
每次用户切换标签时,我都不希望页面重新加载。我也不希望滚动条重置。或者重置HTML表单(如果有)。我怎么能做到这一点?
答案 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;
}