无法以编程方式更改webview高度

时间:2012-07-06 09:25:55

标签: java android

我在主布局上设置了一个webview,我无法以编程方式调整大小。 Webview处于“主要”布局中。 如果对他的contentainer“layoutA”做同样的事情,但是工作但不是解决方案,我只需要设置webview视图。谢谢。

protected void onCreate(Bundle savedInstanceState){
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);

            final RelativeLayout LayoutA = (RelativeLayout)findViewById(R.id.aLayout);
            webviewA = (WebView) findViewById(R.id.webviewA);           

            Handler handler = new Handler();
            final Runnable r = new Runnable()
            {
                public void run() 
                {
                     LayoutParams params = (LayoutParams) webviewA.getLayoutParams();

                      params.height -= 150;

                }
            };

            handler.postDelayed(r, 1000);

logcat的,

07-06 11:23:21.204: E/AndroidRuntime(13795): FATAL EXCEPTION: main
07-06 11:23:21.204: E/AndroidRuntime(13795): java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams
07-06 11:23:21.204: E/AndroidRuntime(13795):    at com.xxxx.projecte1.webPush$1.run(webPush.java:109)
07-06 11:23:21.204: E/AndroidRuntime(13795):    at android.os.Handler.handleCallback(Handler.java:587)
07-06 11:23:21.204: E/AndroidRuntime(13795):    at android.os.Handler.dispatchMessage(Handler.java:92)
07-06 11:23:21.204: E/AndroidRuntime(13795):    at android.os.Looper.loop(Looper.java:138)
07-06 11:23:21.204: E/AndroidRuntime(13795):    at android.app.ActivityThread.main(ActivityThread.java:3701)
07-06 11:23:21.204: E/AndroidRuntime(13795):    at java.lang.reflect.Method.invokeNative(Native Method)
07-06 11:23:21.204: E/AndroidRuntime(13795):    at java.lang.reflect.Method.invoke(Method.java:507)
07-06 11:23:21.204: E/AndroidRuntime(13795):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878)
07-06 11:23:21.204: E/AndroidRuntime(13795):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636)
07-06 11:23:21.204: E/AndroidRuntime(13795):    at dalvik.system.NativeStart.main(Native Method)

3 个答案:

答案 0 :(得分:0)

在WebView上调用invalidate()。 见http://developer.android.com/reference/android/view/View.html(绘图部分)

Greets Flo

答案 1 :(得分:0)

您已在活动类中导入RelativeLayout.LayoutParams。

尝试使用

public void run() 
{
     ViewGroup.LayoutParams params = (ViewGroup.LayoutParams) webviewA.getLayoutParams();
     params.height -= 150;    
}

答案 2 :(得分:0)

问题在于导入的包请检查包你的情况应该是它不存在而不是添加它而不是像导入android.widget.RelativeLayout等其他pkg ...

 import android.view.ViewGroup.LayoutParams;
相关问题