如何解决在web视图旋转为Android手机? [英] How to fix rotation on webview for Android phones?

查看:202
本文介绍了如何解决在web视图旋转为Android手机?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图找出如何解决在web视图的定位问题。基本上每次用户改变设备的定向方案变白并重新加载整个页面。这只是需要长。

我想它的工作一样,只是调整页面大小以适合orientation.I've试图阅读关于这一主题的其他文章所有其他程序,但是当我实现了自己的解决方案,它似乎没有修复问题。

下面是我目前的code。

 包testdev.HelloWebApp;

进口android.app.Activity;
进口android.os.Bundle;
进口android.view.KeyEvent;
进口android.webkit.WebSettings;
进口android.webkit.WebView;
进口android.webkit.WebViewClient;

公共类HelloWebAppActivity延伸活动{
/ **第一次创建活动时调用。 * /
私人的WebView web视图;
@覆盖
公共无效的onCreate(包savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.main);

    web视图=(web视图)findViewById(R.id.webView);
    WebSettings webSettings = webView.getSettings();
    webSettings.setJavaScriptEnabled(真正的);
    webView.setWebViewClient(新HelloWebViewClient());
    webView.loadUrl(http://google.com);

    如果(savedInstanceState!= NULL)
      ((web视图)findViewById(R.id.webView))restoreState(savedInstanceState)。

}
私有类HelloWebViewClient扩展WebViewClient {
    @覆盖
    公共布尔shouldOverrideUrlLoading(web视图查看,字符串URL){
        view.loadUrl(URL);
        返回true;
    }
}

@覆盖
公共布尔的onkeydown(INT键code,KeyEvent的事件)
{
    如果((钥匙code == KeyEvent.KEY code_BACK)及和放大器; webView.canGoBack())
    {
        webView.goBack();
        返回true;
    }
    返回super.onKeyDown(键code,事件);
}

@覆盖
保护无效的onSaveInstanceState(包outState){
    ((web视图)findViewById(R.id.webView))saveState和(outState)。
}
}
 

解决方案

与Android 3.2(API级别13)开始,屏幕尺寸也改变时,纵向和横向之间的设备切换。因此,如果你开发的API级别时,要因方向变化prevent运行时重新启动13或更高,则必须包括除方向中的屏幕尺寸值(由的minSdkVersion和targetSdkVersion属性的声明)值。也就是说,你必须decalare

 <活动机器人:configChanges =方向|屏幕尺寸>
 

下面的文档:<一href="http://developer.android.com/guide/topics/resources/runtime-changes.html">http://developer.android.com/guide/topics/resources/runtime-changes.html

I'm trying to figure out how to fix the orientation problem on webview. Basically every time the user changes the orientation on the device the program goes white and reloads the entire page. This just takes to long.

I'd like it to work like every other program that simply adjusts the page size to fit the orientation.I've tried reading other articles on the subject, but when I implement their solution it doesn't seem to fix the problem.

Here is my current code.

package testdev.HelloWebApp;

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class HelloWebAppActivity extends Activity {
/** Called when the activity is first created. */
private WebView webView;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    webView = (WebView)findViewById(R.id.webView);
    WebSettings webSettings =webView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    webView.setWebViewClient (new HelloWebViewClient());
    webView.loadUrl("http://google.com");

    if (savedInstanceState != null)
      ((WebView)findViewById(R.id.webView)).restoreState(savedInstanceState);

}
private class HelloWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
}

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event)
{
    if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack())
    {
        webView.goBack();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

@Override
protected void onSaveInstanceState(Bundle outState ){
    ((WebView) findViewById(R.id.webView)).saveState(outState);
}
}

解决方案

Beginning with Android 3.2 (API level 13), the "screen size" also changes when the device switches between portrait and landscape orientation. Thus, if you want to prevent runtime restarts due to orientation change when developing for API level 13 or higher (as declared by the minSdkVersion and targetSdkVersion attributes), you must include the "screenSize" value in addition to the "orientation" value. That is, you must decalare

<activity android:configChanges="orientation|screenSize">

Here's the docs: http://developer.android.com/guide/topics/resources/runtime-changes.html

这篇关于如何解决在web视图旋转为Android手机?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆