Ponowne ładowanie WebView, gdy Fragment w ViewPager zostaje zachowany z BackStack
Oto kod podstawowyFragment
który zawiera aWebView
.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) {
}
}
}
Mam też 2 bardziej podstawowe fragmenty (które nie mająWebView
). Potem umieściłem wszystkie te 3Fragments
wViewPager
(WebFragment
, Fragment1
iFragment2
odpowiednio) za pomocąFragmentAdapter
. I dodałemandroid:configChanges="orientation|screenSize"
wAndroidManifest.xml
(WięcWebView
nie zmieni się przy zmianie konfiguracji).
Teraz mój problem polega na tym, że podczas uruchamiania aplikacji zmieniłem pierwszą stronę (WebFragmet) zViewPager
na drugą stronę (Fragment1
) i znów wróciłem na pierwszą stronę. Więc nie ma problemuWebFragment
jest taki jaki jest.
Teraz znowu zmieniłemViewPager
lubię toWebFragment
->Fragment1
->Fragment2
i wróciłem na pierwszą stronę, odwracając kierunek powyższej akcji. Ale wtedy widziałemWebView
wWebFragment
przeładowuje.
I jeszcze jeden problem, ilekroćWebView
rozpoczęło się ładowanie Widzę 2 wpisy dziennika jak.
WebFragment Loading...
WebFragment Loading...
Więc moje pytanie brzmi:
1) Jak mogę zapobiecWebView
przeładowanie, gdyWebFragment
jest zachowany zBackStack
?
2) Dlaczego tutajWebView
ładujesz dwa razy?
Po prostu zobacz to pytanie i pomóż mi (Zapobiegaj przeładowaniom WebView w FragmentPagerAdapter?).