बनाए रखा है यहाँ एक बुनियादी Fragment
जो एक WebView
शामिल करने के लिए एक कोड है।
WebFragment.java
WebView पुन: लोड जब ViewPager में टुकड़ा प्रपत्र BackStack
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
का उपयोग करके सभी। और मैं AndroidManifest.xml
में android:configChanges="orientation|screenSize"
जोड़ा (तो WebView
configration परिवर्तन पर realod नहीं होगा)।
अब मेरी समस्या यह है कि, ऐप चलाने के दौरान मैंने ViewPager
के पहले पृष्ठ (Fragment1
) के पहले पृष्ठ (WebFragmet) को बदल दिया और फिर मैं 1 पृष्ठ पर वापस आया। तो WebFragment
कोई समस्या नहीं है।
अब फिर मैंने ViewPager
को WebFragment
->Fragment1
->Fragment2
और ऊपर की कार्रवाई की दिशा को उलटकर 1 पृष्ठ पर वापस आ गया। लेकिन उस समय मैंने WebView
WebFragment
में पुनः लोड किया है।
और एक और समस्या है, जब भी WebView
लोड हो रहा है शुरू कर दिया मैं की तरह 2 लॉग प्रविष्टि देख सकते हैं।
WebFragment Loading...
WebFragment Loading...
तो मेरे सवाल है:
1) मैं WebView
reloading कैसे रोका जा सकता है जब WebFragment
BackStack
से बनाए रखा है?
2) यहाँ क्यों WebView
लोड हो रहा है दो बार?
बस यह प्रश्न देखें और मेरी मदद करें (Prevent WebView reloads in FragmentPagerAdapter?)।
बहुत यकीन है कि यह सही जवाब है। – Wamasa
@ धीराग शाह वास्तव में मुझे यह पता है ('viewpager.setOffscreenPageLimit (2);') लेकिन यदि मेरे पास 'WebPiew' के साथ मेरे' ViewPager' में 5 या अधिक 'Fragments' हैं, तो यदि मैं 'viewpager.setOffscreenPageLimit (5+) सेट करता हूं; ', यह एक बुरा विकल्प होगा, कठोर? क्या आप कहते हैं? –
क्या आप मेरे दूसरे प्रश्न के उत्तर दे सकते हैं? –