Вот код базового 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
). Затем я помещаю все эти 3 Fragments
в ViewPager
(WebFragment
, Fragment1
и Fragment2
соответственно), используя FragmentAdapter
. И я добавил android:configChanges="orientation|screenSize"
в AndroidManifest.xml
(So WebView
не будет использоваться при изменении конфигурации).
Теперь моя проблема: во время запуска приложения я изменил первую страницу (WebFragmet) на ViewPager
на 2-ю страницу (Fragment1
), и снова я вернулся на первую страницу. Таким образом, проблема WebFragment
такова, как есть.
Теперь снова я изменил ViewPager
следующим образом WebFragment
→ Fragment1
→ Fragment2
и вернулся на первую страницу, изменив направление действия выше. Но в то время я видел перезагрузку WebView
в WebFragment
.
И еще одна проблема, когда при загрузке WebView
я вижу 2 записи в журнале, например.
WebFragment Loading...
WebFragment Loading...
Итак, мой вопрос:
1) Как предотвратить перезагрузку WebView
, когда WebFragment
сохранен из BackStack
?
2) Почему здесь WebView
загрузка дважды?
Просто просмотрите этот вопрос и помогите мне (Предотвратить перезагрузку WebView в FragmentPagerAdapter?).