我想阻止时,朝向变化的WebView重新加载页面每次。安卓:webView的处理方向更改
我已经按照下面的教程:
但它调用onCreate()
方法eveytime并获取页面阿恩和试。
DisplayResult.java:
public class DisplayResult extends AppCompatActivity
{
protected FrameLayout webViewPlaceholder;
protected WebView webView;
protected Uri url;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.display_result);
url = Uri.parse(getIntent().getStringExtra("Url"));
initUI();
Toast.makeText(DisplayResult.this ,"Oncreate",Toast.LENGTH_SHORT).show();
}
protected void initUI()
{
webViewPlaceholder =(FrameLayout)findViewById(R.id.webViewPlaceholder);
if(webView==null)
{
//webView = (WebView) findViewById(R.id.webview);
webView = new WebView(this);
// webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setDisplayZoomControls(false);
//webView.getSettings().setTextZoom(0);
webView.setWebViewClient(new Callback());
webView.loadUrl(url.toString());
}
webViewPlaceholder.addView(webView);
}
private class Callback extends WebViewClient {
MaterialDialog m ;
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return(false);
}
@Override
public void onPageStarted(WebView view, String url, Bitmap facIcon) {
m=new MaterialDialog.Builder(DisplayResult.this)
.title("Fetching Result")
.content("Please wait...")
.progress(true,0)
.show();
}
@Override
public void onPageFinished(WebView view, String url){
m.cancel();
}
}
@Override
protected void onSaveInstanceState(Bundle outState){
super.onSaveInstanceState(outState);
webView.saveState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
webView.restoreState(savedInstanceState);
}
@Override
public void onConfigurationChanged(Configuration newConfig){
if(webView==null)
{
webViewPlaceholder.removeView(webView);
}
super.onConfigurationChanged(newConfig);
setContentView(R.layout.display_result);
url = Uri.parse(getIntent().getStringExtra("Url"));
initUI();
}
}
和我的布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<FrameLayout
android:id="@+id/webViewPlaceholder"
android:layout_width="fill_parent"
android:layout_height="fill_parent"></FrameLayout>
</LinearLayout>
我还添加了清单文件:
<activity
android:name=".DisplayResult"
android:configChanges="keyboard|keyboardHidden|orientation"
android:label="@string/display"
android:parentActivityName=".MainActivity" />
不过它不工作。谁能帮我解决办法:
我也试过:
Android Webview Handling Orientation Not Working
它的工作不:( – Prabhakar
现在发生了什么? – Android
呀。工作!你能解释一下什么是错的? – Prabhakar