如何使用固定大小的webview?

时间:2011-11-19 04:53:10

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

我需要一个以固定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?

2 个答案:

答案 0 :(得分:5)

试试这个......

创建一个单独的类。

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");

答案 1 :(得分:0)

当用户在WebView中单击来自网页的链接时,默认的Android浏览器会处理Intent以查看网页,因为从技术上讲,您的活动无法执行此操作。您需要覆盖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且事件不应传播。