有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java我的应用程序在我更改webview大小时崩溃

我创建了一个显示webview的应用程序。 当我更改WebView的大小时,我的应用程序崩溃

这是我的代码:

final WebView videoWebView = (WebView) findViewById(R.id.videoWebView);
    videoWebView.getSettings().setJavaScriptEnabled(true);
    videoWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    videoWebView.getSettings().setPluginState(PluginState.ON);
    videoWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(30, 30);
    videoWebView.setLayoutParams(layoutParams);

(这个网络视图隐藏在应用程序的开头,当我显示给他时,应用程序崩溃了) 你能帮我吗

非常感谢

我的注销:

java.lang.ClassCastException: 安卓.widget.LinearLayout$LayoutParams cannot be cast to 安卓.widget.FrameLayout$LayoutParams
at 安卓.widget.FrameLayout.onMeasure(FrameLayout.java:186)
at 安卓.view.View.measure(View.java:19759)
at 安卓.widget.LinearLayout.measureVertical(LinearLayout.java:911)
at 安卓.widget.LinearLayout.onMeasure(LinearLayout.java:640)
at 安卓.view.View.measure(View.java:19759)
at 安卓.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6122)
at 安卓.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at 安卓.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:139)
at 安卓.view.View.measure(View.java:19759)
at 安卓.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6122)
at 安卓.support.v7.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:393)
at 安卓.view.View.measure(View.java:19759)
at 安卓.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6122)
at 安卓.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at 安卓.view.View.measure(View.java:19759)
at 安卓.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6122)
at 安卓.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464)
at 安卓.widget.LinearLayout.measureVertical(LinearLayout.java:758)
at 安卓.widget.LinearLayout.onMeasure(LinearLayout.java:640)
at 安卓.view.View.measure(View.java:19759)
at 安卓.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6122)
at 安卓.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at com.安卓.internal.policy.DecorView.onMeasure(DecorView.java:690)
at 安卓.view.View.measure(View.java:19759)
at 安卓.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2313)
at 安卓.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1400)
at 安卓.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1649)
at 安卓.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1288)
at 安卓.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6359)
at 安卓.view.Choreographer$CallbackRecord.run(Choreographer.java:873)
at 安卓.view.Choreographer.doCallbacks(Choreographer.java:685)
at 安卓.view.Choreographer.doFrame(Choreographer.java:621)
at 安卓.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:859)
at 安卓.os.Handler.handleCallback(Handler.java:754)
at 安卓.os.Handler.dispatchMessage(Handler.java:95)
at 安卓.os.Looper.loop(Looper.java:163)
at 安卓.app.ActivityThread.main(ActivityThread.java:6326)
at java.lang.reflect.Method.invoke(Native Method)
at com.安卓.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:880)
at com.安卓.internal.os.ZygoteInit.main(ZygoteInit.java:770)

共 (2) 个答案

  1. # 1 楼答案

    试试这个

    ViewGroup.LayoutParams newParams=videoWebView.getLayoutParams();
            newParams.height=30;
            newParams.width=30;
            videoWebView.setLayoutParams(newParams);
    

    还是这个

    FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(30, 30); 
    videoWebView.setLayoutParams(layoutParams);
    
  2. # 2 楼答案

    将代码中的LinearLayout.LayoutParams替换为FrameLayout.LayoutParams

     LinearLayout.LayoutParams layoutParams =  LinearLayout.LayoutParams(30, 30);
    

    与:

    FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(30, 30);