这是Fragment
包含WebView
.
WebFragment.java
public class WebFragment extends Fragment {
String TAG = "WebFragment";
private WebView webView;
private String currentUrl = "http://www.google.com";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.webview_layout, null);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
webView = (WebView) getView().findViewById(R.id.helloWebview);
initWebView();
webView.loadUrl(currentUrl);
}
@SuppressLint("SetJavaScriptEnabled")
private void initWebView() {
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new JavaScriptInterface(), "HTMLOUT");
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
Log.e(TAG, "Loding...");
super.onPageStarted(view, url, favicon);
}
});
}
class JavaScriptInterface {
public void showHTML(String html) {
}
}
}
我还有 2 个基本片段(没有WebView
)。然后我将所有这些 3Fragments
放入ViewPager
(WebFragment
和Fragment1
分别Fragment2
) using FragmentAdapter
。我添加android:configChanges="orientation|screenSize"
了AndroidManifest.xml
(所以WebView
不会重新配置更改)。
现在我的问题是,在运行应用程序时,我将第一页(WebFragmet)更改ViewPager
为第二页(Fragment1
),然后我又回到了第一页。所以没有问题WebFragment
。
现在我再次更改了ViewPager
这样的WebFragment
--> Fragment1
-->Fragment2
并通过反转上述操作的方向返回到第一页。但当时我看到WebView
inWebFragment
正在重新加载。
还有一个问题,每当WebView
开始加载时,我都会看到 2 个日志条目。
WebFragment Loading...
WebFragment Loading...
所以我的问题是:
1)如何防止在保留WebView
时重新加载?
2)为什么这里加载两次?WebFragment
BackStack
WebView
只要看到这个问题并帮助我(防止 WebView 在 FragmentPagerAdapter 中重新加载?)。