android中webview的横向视图和纵向视图

android中webview的横向视图和纵向视图,android,ios,xml,android-layout,webview,Android,Ios,Xml,Android Layout,Webview,我在安卓应用上工作,我在安卓应用中处理网络视图。我有两个版面,主要是在版面文件夹中找到的activitymain.xml和在layout land文件夹中找到的另一个名为activitymain.xml的版面,我从一个java文件中加载这两个,但我需要这两个来加载两个不同的webview,一个用于横向,另一个用于纵向。我的问题是是否可以直接放置我的webview的url/文件路径在xml中,这样当用户更改方向和layout land load中的activitymain.xml时,他会加载一个用

我在安卓应用上工作,我在安卓应用中处理网络视图。我有两个版面,主要是在版面文件夹中找到的activitymain.xml和在layout land文件夹中找到的另一个名为activitymain.xml的版面,我从一个java文件中加载这两个,但我需要这两个来加载两个不同的webview,一个用于横向,另一个用于纵向。我的问题是是否可以直接放置我的webview的url/文件路径在xml中,这样当用户更改方向和layout land load中的activitymain.xml时,他会加载一个用于横向的webview,而不是纵向xml中的webview

更新:


我能够按照自己的方式运行它,问题是它从一开始就重新加载,这是一个愚蠢的错误,当发生更改时我没有考虑到。应用程序加载一个新页面,这是从一开始的计划,但问题是在更改丢失之前的用户数据,因此我认为我的解决方案不是一个简单的解决方案解决方案但有一个问题您能给我一些建议吗?如何在不丢失数据的情况下更改方向,以及如何继续上一页中发生更改的地方,而不是从头开始?

我认为他正在试图找到一些方法,直接在xml文件中设置url,而不必在xml文件中运行loadUrl方法活动比如:

但我认为这是不可能的。见正式文件

更改它实际上会创建一个新视图

相反,您可以通过编程方式执行此操作:

在onCreate方法代码中,它是这样的

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        /*getResources().getConfiguration().ORIENTATION_PORTRAIT;*/
        webview = (WebView)findViewById(R.id.webView1);
        webview.getSettings().setJavaScriptEnabled(true);
         webview.setWebViewClient(new WebViewClient()
            {
                public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                    Toast.makeText(getApplicationContext(), description, Toast.LENGTH_SHORT).show();
                }
            });
        webview.loadUrl("http://www.facebook.com");

    }
此外,您还可以通过以下方式检查方向更改:

@Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);

        // Checks the orientation of the screen
        if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
            webview.loadUrl("http://www.google.com");
            Toast.makeText(getApplicationContext(), "landscape", Toast.LENGTH_SHORT).show();
        } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
            webview.loadUrl("http://www.stackoverflow.com");
            Toast.makeText(getApplicationContext(), "portrait", Toast.LENGTH_SHORT).show();
        }
    }
并将其放入manifest.xml中

希望这对你有用。对我来说很好

编辑:

别忘了给互联网许可,否则它不会运行

<uses-permission android:name="android.permission.INTERNET"/>
如果有任何问题,请告诉我


谢谢。

好的,我会在开始之前尝试一下,我只是想问一下。这会加载相同或不同的页面吗?我会尝试一下,稍后再与您联系result@satinekianne:它肯定会在webview中加载不同的链接。您只需更改webview.loadUrlhttp://www.example.com; 但我有一个问题,你看,当方向改变时,我想加载相同的页面。例如,从第1页我转到第2页,改变方向我回到第1页,这不是我想要的。我想要的是,当我改变方向时,页面仍然是第2页,只是方向不同
<uses-permission android:name="android.permission.INTERNET"/>