在webview中使用Navigation Drawer调用网页。但是当通过菜单移动时,它会一次又一次地重新加载整个网站。我只想保存用户离开网页的状态而不是从网页的开头。
感谢您的帮助。
代码: -
public class Facebook extends Fragment {
// this Fragment will be called from MainActivity
public Facebook(){}
private WebView webView ;
private Bundle webViewBundle;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.facebook, container, false);
webView = (WebView) rootView.findViewById(R.id.facebook);
webView.setWebViewClient(new WebViewClient());
webView.getSettings().setLoadWithOverviewMode(true);
webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setRenderPriority(RenderPriority.HIGH);
if (webViewBundle == null) {
try{
webView.loadUrl("http://www.facebook.com");
}catch (Exception e){
e.printStackTrace();}
} else {
webView.restoreState(webViewBundle);
}
return rootView;
}
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
public void onPause() {
super.onPause();
webViewBundle = new Bundle();
webView.saveState(webViewBundle);
}
}
答案 0 :(得分:0)
首次加载网站后,您是否尝试将缓存模式设置为LOAD_CACHE_ONLY?
WebSettings webSettings = webView.getSettings();
webSettings.setCacheMode(LOAD_CACHE_ONLY);
答案 1 :(得分:0)
在感到沮丧或拉扯你的头发之前,请将其添加到viewpager旁边。
ViewPager.setOffscreenPageLimit(3);// three is my number of fragments.