【问题标题】:Android: Only rotate webview, not the menu buttons on the phoneAndroid:只旋转webview,而不是手机上的菜单按钮
【发布时间】:2016-11-29 19:01:37
【问题描述】:

在我的应用程序中,我显示的网页太大而无法纵向显示,因此我想旋转它。我尝试在活动上使用RequestedOrientation = ScreenOrientation.Landscape;,但它改变了整个手机的旋转,而不仅仅是网络视图。我还尝试制作自定义 webview 类:

 public class VerticalWebView : WebView
    {
        bool topDown = true;

    public VerticalWebView(Context context, IAttributeSet attrs) : base(context, attrs)
        {

        }


        public override void Draw(Canvas canvas)
        {
            if (topDown)
            {
                canvas.Translate(Height, 0);
                canvas.Rotate(90);
            }
            else
            {
                canvas.Translate(0, Width);
                canvas.Rotate(-90);
            }

            canvas.ClipRect(0, 0, Width, Height, Region.Op.Replace);
            base.Draw(canvas);
        }
    }

但我无法让它与布局文件中的 webview XML 一起使用。任何意见将不胜感激

【问题讨论】:

  • 我可能是错的,这就是为什么我只是把它作为评论,但我不认为你可以单独旋转一件事。我相信你必须旋转整个显示器。
  • 我很难相信会是这样
  • 如果可以的话,也许可以提供一些你想要达到的目标的模型图像。
  • 我不能,但它应该是不言自明的......我希望网页横向显示,而不是垂直向上和向下。基本上,当您旋转手机和网页旋转时会产生影响。我要那个。仅当手机仍处于直立位置时

标签: c# android mobile xamarin webview


【解决方案1】:

如果我的要求有误,请纠正我

先直接对准手机的方向 how to detect orientation of android device?

检查它并在正确的条件内

随意旋转webView!如下所示

 WebView webView = (WebView) findViewById(R.id.web);
        webView.loadUrl("https://stackoverflow.com/questions/1930963/rotating-a-view-in-android");
        webView.setRotation(90);

虚拟结果就像 >

【讨论】:

  • 理论上这很好,但它不会改变 webview 的尺寸。因此,当您旋转它时,我会得到相同的窄纵向显示,只是侧放。而不是填满应用程序(比如当你实际旋转手机时)
  • 那么如何保持 web 视图旋转并手动更改其他视图旋转(如按钮),反之亦然?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-08
相关资源
最近更新 更多