【问题标题】:How to set WebView as non-fullscreen?如何将 WebView 设置为非全屏?
【发布时间】:2010-08-01 13:25:41
【问题描述】:

我正在尝试在我的 Android 应用程序中使用 WebView。我正在代码端(而不是 XML)创建我的 webview。我的问题是;当我调用 webview 的 loadUrl 方法时,webview 进入全屏模式。如何保持 webview 的大小,例如 200x200 像素?

如果有任何其他选项代替 webview,当然欢迎 :)

谢谢,

【问题讨论】:

标签: android webview


【解决方案1】:

很可能您看到的不是您的活动,而是浏览器应用程序,因为您链接到的 URL 进行了重定向。使用WebViewClientshouldOverrideUrlLoading() 捕获重定向并将其发送回您自己的WebView

【讨论】:

  • 很可能是这种情况(和补救措施)
【解决方案2】:

@Mahtias Lin,请看我的代码来创建和使用WebView;

WebView webView = new WebView(this);

RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, 416);

WebSettings webSettings = webView.getSettings();
webSettings.setSavePassword(false);
webSettings.setSaveFormData(false);
webSettings.setJavaScriptEnabled(true);

webView.setLayoutParams(p);
webView.loadUrl("http://www.google.com/");

以上代码未将我的 webview 设置为 416px 高度。

@CommonsWare,我用下面的代码尝试了你的建议,而且效果惊人,谢谢。

webView.setWebViewClient(new WebViewClient() {  
   @Override  
   public boolean shouldOverrideUrlLoading(WebView view, String url)  
   {  
       view.loadUrl(url);
       return false;

    }  
 });  

但是这种用法带来了一些新的问题。当我覆盖 shouldOverrideURLLoading 时,webview 显示无地址栏、无导航(后退、前进等)?

而且,webview 不接受用户输入?

好的,我正在编辑我的问题:)

我搜索并发现以下附加设置使 webview 能够获取输入;

webView.requestFocus(View.FOCUS_DOWN);

另一方面,我想我会为我的 web 视图创建自己的后退、前进按钮和地址栏。当我创建按钮和地址栏时,我还会将“发生了什么”附加到该线程。

最好的,

【讨论】:

    【解决方案3】:
    WebView wb=new WebView();
    wb.setInitialScale(60);
    

    这用于模拟器的设置布局。 60 表示百分比值。我们可以使用 0% 到 100%。

    【讨论】:

      【解决方案4】:

      查看我的回复和 cmets how to show a webview inside an activity in the middle of screen

      将 LayoutParams 应用到您的 WebView 或 WebView 周围的布局(即 LinearLayout),如果有的话,即setLayoutParams(LinearLayout.LayoutParams(200, 200));

      【讨论】:

      • 感谢您的快速回答。但是,我试过了。我将 LayoutParams 设置为; RelativeLayout.LayoutParams 参数 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, 200); webView.setLayoutParams(params);如果我不调用 loadURL metdoh,这将有效。当我调用该方法时,webView 会全屏显示。
      • 这很奇怪。您可以发布您的代码(编辑/添加到问题),尤其是在您进行 WebView 的所有设置和初始化的地方。您确定您看到的 webview 是您自己的应用内 webview 而不是默认浏览器?
      猜你喜欢
      • 2011-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多