【问题标题】:How to use a webview in a fixed size?如何使用固定大小的 webview?
【发布时间】:2011-11-19 04:53:09
【问题描述】:

我需要一个以固定的widthheight 显示网页内容的页面。 我将 webview 放在高度为 200px 的 xml 文件中,但是在加载该页面时,它直接重定向到默认浏览器视图。 在手机中按下返回键时,它会重定向到原始页面,然后webview什么都不显示。

在我的 xml 文件中

 <WebView  android:layout_width="fill_parent" android:layout_height="200px" android:id="@+id/wvbrowser" />

在代码中

  WebView wvbrowser;
    wvbrowser=(WebView)findViewById(R.id.wvbrowser);
    wvbrowser.loadUrl("http://www.orkut.com");

那么告诉我我哪里错了?以及如何以 FIXED 大小显示 WebView?

【问题讨论】:

  • 如何在模拟器中输入'

标签: android android-layout android-widget android-webview


【解决方案1】:

试试这个...

创建一个单独的类。

public class HelloWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
}

然后在你的活动中使用这个。

WebView wvbrowser;
wvbrowser=(WebView)findViewById(R.id.wvbrowser);
wvbrowser.setWebViewClient(new HelloWebViewClient());
wvbrowser.getSettings().setJavaScriptEnabled(true);
wvbrowser.loadUrl("http://www.orkut.com");

【讨论】:

  • 它工作正常。上面代码的工作原理是什么?,我的意思是 HelloWebViewClient 类是什么???
  • 有关更多信息,请访问此链接。 developer.android.com/reference/android/webkit/WebView.html
  • 此代码不起作用。它是一个按钮单击事件,它会重新调整两个小部件的大小。调整第二个小部件时会引发异常。public void onClick(View v) { if(btcode==v) { ViewGroup.LayoutParams params1=wvbrowser.getLayoutParams(); ViewGroup.LayoutParams params2=wvbrowser.getLayoutParams(); params1.height=200; params2.height=5; wvbrowser.setLayoutParams(params1); txtcode.setLayoutParams(params2); } }
【解决方案2】:

当用户在您的 WebView 中单击网页中的链接时,默认的 Android 浏览器会处理查看网页的 Intent,因为您的 Activity 在技术上不支持这样做。您需要重写 WebViewClient 类并启用您的 webview Activity 来处理自己的 URL 请求。

setWebViewClient(new HelloWebViewClient());

上面的行创建了一个 WebViewClient,它将从这个 WebView 中选择的任何 URL 加载到同一个 WebView 中。

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    view.loadUrl(url);
    return true;
}

shouldOverrideUrlLoading(WebView, String) 方法传递当前 WebView 和请求的 URL,因此它需要做的就是在给定视图中加载 URL。返回 true 表示该方法已处理 URL,事件不应传播。

【讨论】:

  • 如何在模拟器中输入 '
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-09
  • 1970-01-01
  • 2011-02-28
  • 1970-01-01
  • 1970-01-01
  • 2017-09-20
相关资源
最近更新 更多