2016-11-29 143 views
0

在我的應用程序中,我顯示的頁面太大而不適合肖像顯示,所以我想旋轉它。我嘗試在活動上使用RequestedOrientation = ScreenOrientation.Landscape;,但它改變了整個手機的輪播,而不僅僅是webview。我也嘗試做一個自定義webview類:Android:僅旋轉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一起工作。任何投入將不勝感激

+0

我可能是錯的,這就是爲什麼我只是把這個作爲一個評論,但我不認爲你可以單獨旋轉了一兩件事。我相信你必須旋轉整個顯示器。 – gmiley

+0

我覺得很難相信會發生這種情況 –

+0

如果可以的話,也許可以提供一些模擬圖片,說明你正在努力實現的目標。 – gmiley

回答

0

糾正我,如果我得到你的要求錯

首先直接在電話的朝向 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); 

假人結果是一樣> enter image description here

+0

這在理論上是好的,但它不會改變webview的尺寸。所以當你旋轉它時,我會得到同樣窄的肖像畫面,只是放在它的側面。而不是它填滿了應用程序(就像當你真的旋轉你的手機一樣) –

+0

那麼保持網頁視圖爲旋轉狀態並改變你的其他視圖手動旋轉(如按鈕),反過來呢? –