android - WebView 无法根据方向更改正确调整大小

标签 android webview orientation

我正在使用 webview.loadUrl() 将视频 url 加载到 webview 中。播放器在 html 本身中编码,因此我只需将 url 加载到 web View 中。

如果我不在我的 list 中提供 android:configChanges="orientation",一切正常。 Webview 会根据方向更改正确调整大小,视频会调整为适合屏幕,当然然后视频会重新启动。

因此,我在 list 中提供了 android:configChanges="orientation",这样视频就不会重新加载。现在虽然视频没有重新加载并继续播放但是视频/ WebView 没有正确调整大小并且如果设备最初是纵向然后更改为横向则一半视频会离开屏幕。如果设备最初处于横向模式,然后更改为纵向模式,则只使用了一半的屏幕。

如果你能想出办法或有什么建议请回复

最佳答案

*if configchanges = "orientation"- not specified,* android 系统处理更改并重新启动布局,因此布局是新创建的,视频从一开始就加载。

如果 android:configchanges = "orientation" , - 这告诉系统该 Activity 将自行处理方向变化。 所以,android系统不会刷新加载布局。所以视频继续播放。父布局的宽度不会改变。所以纵向模式下的宽度用于横向。所以,您的 WebView 似乎很小。

需要重写activity中的onconfigurationchanged(),处理方向变化。 layout需要指定layoutparams。

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

        // Checks the orientation of the screen
        if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
            Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
            // for example the width of a layout  
            int width = 300;
            int height = LayoutParams.WRAP_CONTENT;
            WebView childLayout = (WebView) findViewById(R.id.webview);
            childLayout.setLayoutParams(new LayoutParams(width, height));
        } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
            Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
        }
    }

关于android - WebView 无法根据方向更改正确调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16419735/

相关文章:

android - android中的触摸事件

java - Android 应用程序 TCP/IP 服务器在调用接受时崩溃

ios - 在 iOS 9 中强制 UIViewController 为横向

view - Windows 8 应用程序开发 : can't change Display Mode in Visual Studio 2012

android - HTML5 数据列表标签在 android 中不起作用

android - 使用方位信息获取向下方向

android - 执行 Espresso 测试并在 EditText 为空时失败

android从 Activity 2中的点击事件打开特定的选项卡 fragment

Java Selenium : Switch to iframe inside shadow-root open inside webview

iphone - 如何将 iPhone 联系人拉入 UIWebView?