繁体   English   中英

如何以编程方式添加Webview

[英]How to add webview programmatically

当您想以编程方式添加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);

在此处输入图片说明

您的WebView正确呈现。 只需启用所需的功能,例如使其启用javascript并设置chrome客户端和loadUrl即可使其正常工作...

同时,您还可以通过添加以下行来对其进行测试:

webView.loadData("<html><body>TEST</body></html>", "text/html", "utf-8");
    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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM