编码中遇到了改变WebView的大小的问题:希望大神给予指点。谢谢。
下面是在一个Activity中的代码:                mWebView = new WebView(this);
        mWebView.setLayoutParams(new LayoutParams(400, 400));
        mWebView.getSettings().setPluginsEnabled(true);
        mWebView.loadUrl("file:///android_asset/main.swf");
        setContentView(mWebView);  
为什么这样写改变不了webview的大小。望大神给予赐教。
而:在代码中先实例化一个LinearLayout,然后addView(mWebView)就可以其作用。代码如下:
         LinearLayout layout = new LinearLayout(this);
        mWebView = new WebView(this);
        LinearLayout.LayoutParams params =  new LinearLayout.LayoutParams(400, 400);
        params.gravity = Gravity.CENTER;
        mWebView.getSettings().setPluginsEnabled(true);
        mWebView.loadUrl("file:///android_asset/main.swf");
        setContentView(layout);
还有就是在xml中配置WebView的大小,然后代码中通过findViewById()也可以实现改变WebView的大小。希望大神可以给予指导一下,这三中方法。以及为什么第一种不能实现改变大小。谢谢。

解决方案 »

  1.   

    setContentView(mWebView); 
    webview设置成为了最外层的容器,所以就不可以改变大小了。在外层在加上一个容器就可以了。
      

  2.   


     平小哥:
    再问你一下啊,就是我在xml中就写一个webview,然后在他的属性layout_width="400px"和layout_height="400px"。这样再setContentView(R.layout.***);这样也可以改变大小。是不是改变最外层布局的大小只能在xml中改变啊。谢谢!
      

  3.   

    我是这么认为的哦,在xml中添加了控件,即时你最外层是一个控件,android也会给你加上一层容器。要不然怎么会出现一个界面呢。而你在代码中添加一个控件并setContentView。系统不会给你默认添加一层容器的。
      

  4.   

    一个界面最外层必须是一个满屏的容器。虽然有时候我们没有添加但是系统会自动帮我们添加,而代码添加的webview就默认成为了最外层容器,所以你怎调整大小,它都是满屏状态。