Android开发之动态添加WebView实现进度条标题栏展示效果

老路子:看图

说白了就是不用layout的xml写布局,直接用纯代码手写布局实现上面的效果:代码如下:

请将下面代码放到onCreate中动态加载布局即可

 LinearLayout linearLayout = new LinearLayout(this);
        linearLayout.setOrientation(LinearLayout.VERTICAL);
        tvWebViewTitle = new TextView(this);
//        tvWebViewTitle.setCompoundDrawables(ContextCompat.getDrawable(this, R.drawable.ic_arrow_back_black_24dp), null, null, null);
        tvWebViewTitle.setGravity(Gravity.CENTER);
        pbAd = new ProgressBar(this, null, android.R.attr.progressBarStyleHorizontal);
        wb = new WebView(this);
        linearLayout.addView(tvWebViewTitle, LinearLayout.LayoutParams.MATCH_PARENT, 120);
        linearLayout.addView(pbAd, LinearLayout.LayoutParams.MATCH_PARENT, 3);
        linearLayout.addView(wb, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
        setContentView(linearLayout);


//        setContentView(R.layout.activity_agreement);
//        String title = getIntent().getStringExtra("title");
        String url = getIntent().getStringExtra("url");
//        tvWebViewTitle = findViewById(R.id.tvWebViewTitle);
//        pbAd = findViewById(R.id.pb_ad);
//        tvWebViewTitle.setText(title);
//        wb = findViewById(R.id.wb);
        //设置可缩放
        wb.getSettings().setSupportZoom(true);
        wb.getSettings().setBuiltInZoomControls(true);
        //设置WebView自适应屏幕
        wb.getSettings().setUseWideViewPort(true);
        wb.getSettings().setLoadWithOverviewMode(true);
        //加载网页
        wb.loadUrl(url);
        wb.setWebViewClient(new MyWebViewClient());
        wb.setWebChromeClient(new MyWebChromeClient());
        //隐藏缩放按钮
        wb.getSettings().setDisplayZoomControls(false);


        WebSettings settings = wb.getSettings();
        settings.setDomStorageEnabled(true);
        settings.setDefaultTextEncodingName("UTF-8");
        // 是否可访问Content Provider的资源,默认值 true
        settings.setAllowContentAccess(true);
        // 是否可访问本地文件,默认值 true
        settings.setAllowFileAccess(true);
        // 是否允许通过file url加载的Javascript读取本地文件,默认值 false
        settings.setAllowFileAccessFromFileURLs(false);
        // 是否允许通过file url加载的Javascript读取全部资源(包括文件,http,https),默认值 false
        settings.setAllowUniversalAccessFromFileURLs(true);
        settings.setJavaScriptEnabled(true);

        //设置http和https混合加载
        if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
            wb.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
        }

        wb.addJavascriptInterface(this, "GfanSdk");
        tvWebViewTitle.setOnClickListener(this);

猜你喜欢

转载自blog.csdn.net/xiayiye5/article/details/109614569