有 Java 编程相关的问题?

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

java如何以编程方式添加webview

当您想以编程方式在中添加webview时,我遇到了一个问题 我尝试过这样做,但是当按钮已经能够显示时,webview无法显示 我需要这个案子的解决方案

    //        sizeView
        LinearLayout.LayoutParams sizeView = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT,
                LinearLayout.LayoutParams.MATCH_PARENT
        );


//        viewButton
        Button home = new Button(this);
        home.setText("HOME");

        Button profile = new Button(this);
        profile.setText("PROFILE");

        Button academic = new Button(this);
        academic.setText("ACADEMIC");

        Button register = new Button(this);
        register.setText("REGISTER");

        Button about = new Button(this);
        about.setText("ABOUT");

//        viewWEB
        WebView webView = new WebView(this);


//        sideLeft
        LinearLayout sideLeft = new LinearLayout(this);
        sideLeft.setOrientation(LinearLayout.VERTICAL);
        sideLeft.setLayoutParams(sizeView);
        sideLeft.setBackgroundColor(Color.GRAY);
        sideLeft.addView(home);
        sideLeft.addView(profile);
        sideLeft.addView(academic);
        sideLeft.addView(register);
        sideLeft.addView(about);

//        wrapper
        LinearLayout layWrap = new LinearLayout(this);
        layWrap.setBackgroundColor(Color.BLUE);
        layWrap.setOrientation(LinearLayout.HORIZONTAL);
        layWrap.addView(sideLeft);
        layWrap.addView(webView);
        setContentView(layWrap);

enter image description here


共 (2) 个答案

  1. # 1 楼答案

        LinearLayout layWrap = new LinearLayout(this);
        layWrap.setBackgroundColor(Color.BLUE);
        layWrap.setOrientation(LinearLayout.HORIZONTAL);
        layWrap.addView(sideLeft);
    
        setContentView(layWrap);
        LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT);
        FrameLayout.LayoutParams linearlayoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT,FrameLayout.LayoutParams.MATCH_PARENT);
        layWrap.setLayoutParams(linearlayoutParams);
    
        layWrap.addView(webView);
    
        webView.setLayoutParams(layoutParams);
        webView.setBackgroundColor(Color.RED);
        // to enable javascripts
        webView.getSettings().setJavaScriptEnabled(true);
        webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
        webView.getSettings().setBuiltInZoomControls(true);
        // zoom if you want
        webView.getSettings().setSupportZoom(true);
        // to support url redirections
        webView.setWebViewClient(new WebViewClient());
        // extra settings
        webView.getSettings().setLoadWithOverviewMode(false);
        webView.getSettings().setUseWideViewPort(true);
        webView.setScrollContainer(true);
        // setting for lollipop and above
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE);
            webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
        }
    
        webView.loadUrl("http://www.facebook.com");
    

    已完成加载webview

  2. # 2 楼答案

    您的WebView已正确渲染。只需启用所需的功能,如启用javascript,并设置chrome客户端和loadUrl以查看其工作情况

    同时,您也可以通过添加以下行来测试它:

    webView.loadData("<html><body>TEST</body></html>", "text/html", "utf-8");