android - Webview orientation change webview loses headers -
when rotate screen webpage reloads, without original headers.
i restoring webview state using:
@override public void onactivitycreated(bundle savedinstancestate) { super.onactivitycreated(savedinstancestate); if (savedinstancestate == null) { // restore state of webview // webview.getrefreshableview().restorestate(savedinstancestate); webview.loadurl("my_url"); } else { webview.restorestate(savedinstancestate); } } @override public void onsaveinstancestate(bundle outstate) { super.onsaveinstancestate(outstate); webview.savestate(outstate); }
any ideas on solution? restore state, contains webhistory, need headers when page reloaded!
i fixed using solution: http://www.devahead.com/blog/2012/01/preserving-the-state-of-an-android-webview-on-screen-orientation-change/
it doen'st reload page, re-renders headers , included, web history intact.
suggested here
i modified work fragments, snippets here:
@override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); this.setretaininstance(true); } @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view view = inflater.inflate(r.layout.web_fragment, null); //webcontainer = () view.findviewbyid(r.id.web_container); initui(view); setupwebview(); return view; } protected void initui(view view) { // retrieve ui elements webviewplaceholder = ((framelayout)view.findviewbyid(r.id.webviewplaceholder)); // initialize webview if necessary if (webview == null) { // create webview webview = new jswebview(getactivity()); webview.setlayoutparams(new viewgroup.layoutparams(viewgroup.layoutparams.fill_parent, viewgroup.layoutparams.fill_parent)); // load urls inside webview, not in external web browser webview.setwebviewclient(new webviewclient()); // load page webview.loadurl("http://someinitialurl.com"); } // attach webview placeholder webviewplaceholder.addview(webview); } @override public void onconfigurationchanged(configuration newconfig) { if (webview != null) { // remove webview old placeholder webviewplaceholder.removeview(webview); } super.onconfigurationchanged(newconfig); // reinitialize ui initui(getview()); }
Comments
Post a Comment